Вы находитесь на странице: 1из 45

using System;

using System.Collections.Generic;
using System.Linq;
using DhigzaDAO.Entity;
using System.Data.SqlClient;
using System.Data;
using DhigzaDAO.ViewModel;
using System.Windows.Forms;
namespace DhigzaDAO.Repositorios
{
public class CabeceraDAO : IDisposable
{
BD_DHIGZAEntities db = new BD_DHIGZAEntities();

public int ActualizarCabecera(int id, DateTime fecha,string serie, string


numero , string cue,string tc)
{
string cn = ConexionDAO.SELECTOS;
string cadena = "UPDATE CABECERA SET Cab_Fac_Fecha=@fecha,
Cab_Fac_Serie=@serie, Cab_Fac_Numero=@numero WHERE Cab_NumeroDeRegistro=@Id";
string cadena2 = "UPDATE "+ cue + " SET serie=@serie, numero=@numero,
FECHAEMISION=@fecha WHERE serie=@serie and numero=@numero and IDTIPOCOMP=@tc";

using (SqlConnection cnx = new SqlConnection(cn))


{
cnx.Open();
using (var trans = cnx.BeginTransaction())
{

try
{
using (SqlCommand cmd = new SqlCommand(cadena, cnx, trans))
{
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@id", id);
cmd.Parameters.AddWithValue("@serie", serie);
cmd.Parameters.AddWithValue("@numero", numero);
cmd.Parameters.AddWithValue("@fecha", fecha);
cmd.ExecuteNonQuery();
}
using (SqlCommand cmd = new SqlCommand(cadena2, cnx,
trans))
{
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@tc", tc);
cmd.Parameters.AddWithValue("@serie", serie);
cmd.Parameters.AddWithValue("@numero", numero);
cmd.Parameters.AddWithValue("@fecha", fecha);
cmd.ExecuteNonQuery();
}
trans.Commit();
return 1;
}
catch (Exception ex)
{
trans.Rollback();
throw new Exception(ex.Message);
}
}
}
}

public int AnularRegistroPagoVenta(string NumSalida, string Tabla)


{
string cn = ConexionDAO.SELECTOS;

using (SqlConnection cnx = new SqlConnection(cn))


{
string cadena = "update PAGOS_VENTA set activo=0 where
numerosalida=@idcue; " +
"update CHEQUESC set estado=0 WHERE
NING=@IDCUE;" +
"update DEPOSITOSC set estado=0 WHERE
NING=@IDCUE; " +
"update TARJETASC set estado=0 WHERE
NSAL=@IDCUE; " +
"update abono_c set estado=0 WHERE
NSal=@IDCUE;" +
"";
using (SqlCommand cmd = new SqlCommand(cadena, cnx))
{
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@IDCUE", NumSalida);
if (cnx.State == ConnectionState.Open) cnx.Close();
cnx.Open();
return cmd.ExecuteNonQuery();
}
}
}

public int ActualizarRegistroPagoVenta(string NumSalida, string Tabla)


{
string cn = ConexionDAO.SELECTOS;

using (SqlConnection cnx = new SqlConnection(cn))


{
string cadena = " DELETE FROM CHEQUESC WHERE NING=@IDCUE; DELETE
FROM DEPOSITOSC WHERE NING=@IDCUE; DELETE FROM TARJETASC WHERE NSAL=@IDCUE; DELETE
FROM abono_c WHERE NSal=@IDCUE;";
using (SqlCommand cmd = new SqlCommand(cadena, cnx))
{
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@IDCUE", NumSalida);
if (cnx.State == ConnectionState.Open) cnx.Close();
cnx.Open();
return cmd.ExecuteNonQuery();
}
}
}

public int ESTABLECER_ENVIADO_ESTADO(bool estado, int id)


{
string cn = ConexionDAO.SELECTOS;
using (SqlConnection cnx = new SqlConnection(cn))
{
using (SqlCommand cmd = new SqlCommand("USP_ENVIADO_ESTADO", cnx))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@ID", id);
cmd.Parameters.AddWithValue("@estado", estado);
if (cnx.State == ConnectionState.Open) cnx.Close();
cnx.Open();
cmd.ExecuteNonQuery();
return 1;
}
}
}

public int AnularRegistroSalida(string NumSalida, string TablaCUE, string


TablaSalida)
{
string cn = ConexionDAO.SELECTOS;
string Qry = "UPDATE " + TablaCUE + " SET Subtotal=0, Total=0, IGV=0
WHERE IDCUE=@IDCUE";
string Qry2 = "UPDATE " + TablaSalida + " SET Cantidad=0, Precio=0,
Total=0 WHERE IDCUE=@IDCUE";

using (SqlConnection cnx = new SqlConnection(cn))


{
cnx.Open();
SqlTransaction trans = cnx.BeginTransaction();
using (SqlCommand cmd = new SqlCommand(Qry, cnx))
{
try
{
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@IDCUE", NumSalida);
using (SqlCommand cmd2 = new SqlCommand(Qry2, cnx))
{
cmd2.CommandType = CommandType.Text;
cmd2.Parameters.AddWithValue("@IDCUE", NumSalida);
if (cnx.State == ConnectionState.Open) cnx.Close();
cmd.ExecuteNonQuery();
cmd2.ExecuteNonQuery();
trans.Commit();
return 1;
}
}
catch (Exception ex)
{
trans.Rollback();
throw new Exception(ex.Message);
}
finally
{
trans.Dispose();
}
}
}
}

public int DevolverStock(string idArticulo, string Tabla, int cantidad,


string tipo, string serie, string numero)
{
string cn = ConexionDAO.SELECTOS;
string cadena = " UPDATE " + Tabla + " SET stock = stock + @Cantidad
WHERE codcom = @IdArticulo";
using (SqlConnection cnx = new SqlConnection(cn))
{
using (SqlCommand cmd = new SqlCommand(cadena, cnx))
{
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@IdArticulo", idArticulo);
cmd.Parameters.AddWithValue("@Cantidad", cantidad);

//Abrir la conexion
cnx.Open();
cmd.ExecuteNonQuery();
//Abrir la conexion
if (cnx.State == ConnectionState.Open) cnx.Close();
cnx.Open();
cmd.ExecuteNonQuery();
return 1;
}
}
}

public int AnularRegistroKardex(string psalida, string KAR)


{
string cn = ConexionDAO.SELECTOS;
string cadena = "INSERT INTO " + KAR + "() ";
using (SqlConnection cnx = new SqlConnection(cn))
{
using (SqlCommand cmd = new SqlCommand(cadena, cnx))
{
cmd.CommandType = CommandType.Text;
//Abrir la conexion
cnx.Open();
cmd.ExecuteNonQuery();
//Abrir la conexion
if (cnx.State == ConnectionState.Open) cnx.Close();
cnx.Open();
cmd.ExecuteNonQuery();
return 1;
}
}
}

public void GrabarNumeroDoc(string tipoDoc, string serie)


{
string cn = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cn;
db.USP_GRABAR_NUMERODOC_CAB(tipoDoc, serie);
}

public string InsertarCabecera(CABECERA cab)


{

string cn = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cn;
return
Convert.ToString(db.USP_CABECERAInsert(cab.Cab_Fac_TipoDocumento,
cab.Cab_Fac_Serie,
cab.Cab_Fac_Numero, cab.Cab_Fac_Fecha, cab.Cab_Fac_Cliente,
cab.Cab_Fac_Moneda, cab.Cab_Fac_Igv,
cab.Cab_Clte_TipoDocumento,
cab.Cab_Clte_TipoDeCliente, cab.Cab_Clte_NumeroDocumento,
cab.Cab_Clte_RazonSocial, cab.Cab_Fac_TipoDePago,
cab.Cab_Fac_FechaDeVencimiento, cab.Cab_Fac_FechaDePago,
cab.Cab_Ref_Fecha, cab.Cab_Ref_TipoDeDocumento,
cab.Cab_Ref_Serie,
cab.Cab_Ref_Numero, cab.Cab_Fac_TipoDeCalculo,
cab.Cab_Fac_TipoDePrecio,
cab.Cab_Fac_OrdenCompra, cab.Cab_Fac_NumeroGuia,
cab.Cab_Fac_Cheque,
cab.Cab_Fac_Banco, cab.Anulado, cab.Cab_Ref_TipoNotaCredito,
cab.Cab_Ref_TipoNotaDebito,
cab.Cab_Fac_SubTotal, cab.Cab_Fac_Descuentos,
cab.Cab_Fac_ValorVenta,
cab.Cab_Fac_ISC, cab.Cab_Fac_TIGV, cab.Cab_Fac_OtrosCargos,
cab.Cab_Fac_Tributos,
cab.Cab_Fac_ImporteTotal, cab.Cab_Ref_Motivo, cab.Activada,
cab.DeBaja,
cab.Cab_Fac_TVVOE, cab.Cab_Fac_TVVOI,
cab.Cab_Fac_Contingencia, cab.firma,
cab.codBarras, cab.TipoCambio, cab.NumPlaca,
cab.GuiaInterna, cab.NumGuiaRem, cab.NumSalida,
cab.Observaciones, cab.DatosVehiculo,
cab.ConDescuento, cab.TipoOperacion, cab.CodDomicilio,
cab.DG_PorcDsctoGlobal,
cab.DG_BaseImponible, cab.SumatoriaOTrosTrib,
cab.TotalValorVenta, cab.TotalPrecioVenta, cab.TotalDsctos,
cab.SumatoriaOtrosCargos,
cab.TotalAnticipos, cab.ImporteTotalVenta,
cab.DG_MontoDsctos, cab.npedido, cab.idAlm, cab.Tipo,
cab.EsServicio,
cab.Contingencia,cab.Cab_Clte_Direccion).FirstOrDefault());
}

public string EditarCabecera(CABECERA cab)


{

string cn = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cn;
return Convert.ToString(db.usp_CABECERAUpdate(cab.Cab_NumeroDeRegistro,
cab.Cab_Fac_TipoDocumento, cab.Cab_Fac_Serie,
cab.Cab_Fac_Numero, cab.Cab_Fac_Fecha, cab.Cab_Fac_Cliente,
cab.Cab_Fac_Moneda, cab.Cab_Fac_Igv,
cab.Cab_Clte_TipoDocumento,
cab.Cab_Clte_TipoDeCliente, cab.Cab_Clte_NumeroDocumento,
cab.Cab_Clte_RazonSocial, cab.Cab_Fac_TipoDePago,
cab.Cab_Fac_FechaDeVencimiento, cab.Cab_Fac_FechaDePago,
cab.Cab_Ref_Fecha, cab.Cab_Ref_TipoDeDocumento,
cab.Cab_Ref_Serie,
cab.Cab_Ref_Numero, cab.Cab_Fac_TipoDeCalculo,
cab.Cab_Fac_TipoDePrecio,
cab.Cab_Fac_OrdenCompra, cab.Cab_Fac_NumeroGuia,
cab.Cab_Fac_Cheque,
cab.Cab_Fac_Banco, cab.Anulado, cab.Cab_Ref_TipoNotaCredito,
cab.Cab_Ref_TipoNotaDebito,
cab.Cab_Fac_SubTotal, cab.Cab_Fac_Descuentos,
cab.Cab_Fac_ValorVenta,
cab.Cab_Fac_ISC, cab.Cab_Fac_TIGV, cab.Cab_Fac_OtrosCargos,
cab.Cab_Fac_Tributos,
cab.Cab_Fac_ImporteTotal, cab.Cab_Ref_Motivo, cab.Activada,
cab.DeBaja,
cab.Cab_Fac_TVVOE, cab.Cab_Fac_TVVOI,
cab.Cab_Fac_Contingencia, cab.firma,
cab.codBarras, cab.TipoCambio, cab.NumPlaca,
cab.GuiaInterna, cab.NumGuiaRem, cab.NumSalida,
cab.Observaciones, cab.DatosVehiculo, cab.ConDescuento,
cab.TipoOperacion, cab.CodDomicilio, cab.DG_PorcDsctoGlobal,
cab.DG_BaseImponible, cab.SumatoriaOTrosTrib,
cab.TotalValorVenta, cab.TotalPrecioVenta, cab.TotalDsctos,
cab.SumatoriaOtrosCargos,
cab.TotalAnticipos, cab.ImporteTotalVenta,
cab.DG_MontoDsctos, cab.idAlm, cab.npedido,
cab.Tipo, cab.EsServicio));
}

public void InsertarDetalles(List<DETALLE> detalles, Int64


Cab_NumeroDeRegistro)
{

string cn = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cn;
foreach (DETALLE det in detalles)
{
db.usp_DETALLEInsert(Cab_NumeroDeRegistro, det.Det_CodigoArticulo,
det.ctdUnidadItem, det.codUnidadMedida,
det.DesUnidadDeMedida, det.desItem, det.det_TipoComprobante,
det.Peso, det.Activada, det.debaja,
det.mtoPrecioVentaUnitario, det.mtoValorVentaItem, det.codTriIGV,
det.mtoIgvItem, det.nomTributoIgvItem,
det.codTipTributoIgvItem, det.codCatTributoIgvItem, det.tipAfeIGV,
det.porIgvItem, det.codTriISC, det.mtoIscItem,
det.nomTributoIscItem, det.codTipTributoIscItem, det.codCatTributoIscItem,
det.tipSisISC, det.porIscItem,
det.mtoPrecioVentaUnitario, det.mtoValorVentaItem,
det.mtoValorReferencialUnitario,
det.codTipDescuentoItem, det.porDescuentoItem, det.mtoDescuentoItem,
det.mtoBasImpDescuentoItem,
det.codTipCargoItem, det.porCargoItem, det.mtoCargoItem, det.mtoBasImpCargoItem
);
}
}
//public string[] RegistrarVenta(CABECERA cab, List<DETALLE> detalles)
//{
// using (TransactionScope trans = new TransactionScope())
// {
// try
// {
// string id = InsertarCabecera(cab);
// string[] datos = id.Split('-');
// InsertarDetalles(detalles, Convert.ToInt32(datos[0]));
// trans.Complete();
// return datos;
// }
// catch (Exception ex)
// {
// throw new Exception(ex.Message);
// }
// finally
// {
// trans.Dispose();
// }
// }
//}
//public string[] RegistrarVentaGrupo(CABECERA cab, List<DETALLE> detalles,
CueVM det, List<VMIngresosV2> ingres, string numero, string almacen, string cnnx,
string cue, string sal, string qlmo, string karo)
//{
// using (TransactionScope trans = new TransactionScope())
// {
// try
// {
// string id = InsertarCabecera(cab);
// string[] datos = id.Split('-');
// InsertarDetalles(detalles, Convert.ToInt32(datos[0]));
// SalidaDAO db = new SalidaDAO();
// db.AgregarSalidaGrupo(det, ingres, numero, almacen,
cnnx,datos[1], cue, sal,qlmo, karo);
// trans.Complete();
// return datos;
// }
// catch (Exception ex)
// {
// throw new Exception(ex.Message);
// }
// finally
// {
// trans.Dispose();
// }
// }
//}

public int ActualizarDatosCabecera(string IDALM, int NPEDIDO, int


NUMPARTESALIDA, int idcomprobante)
{

string cn = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cn;
return db.USP_ACTUALIZAR_DATOS_CABECERA(IDALM, NPEDIDO, NUMPARTESALIDA,
idcomprobante);
}

public int ActualizaCabeceraUpdateCodbarras(int id, string codbarras)


{

string cn = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cn;
return db.usp_CabeceraUpdateCodbarras(id, codbarras);
}

public decimal RegistrarGuiaRemision(GUIA_REMISION guia)


{

string cn = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cn;
return Convert.ToDecimal(db.USP_GUIA_REMISIONInsert(guia.SERIE,
guia.NumeroGuiaRemision, guia.NumeroSalida,
guia.FechaEmision, guia.FechaInicio,
guia.IdCliente, guia.Partida, guia.Llegada, guia.Placa,
guia.Brevete, guia.idTransportista, guia.LicenciaConducir,
guia.Comentario1, guia.Comentario2,
guia.Despachador, guia.GuiaPorte, guia.Telefono,
guia.NumDocRelacionado, guia.UsuarioCreacion, guia.FechaCreacion,
guia.UsuarioModificacion,
guia.FechaModificacion, guia.Activo, guia.TipoDocRelacionado,
guia.Observaciones, guia.NumGuiaRemisionBaja,
guia.TipoDocGuiaRemBaja, guia.NumDocRemite, guia.TipoDocRemite,
guia.RazonSocialRemite,
guia.NumDocDestinatario, guia.TipoDocDestinatario,
guia.RazonSocialDestinatario, guia.NumDocProveedor,
guia.TipoDocProveedor, guia.RazonSocialProveedor,
guia.MotivoTraslado, guia.DescMotivo, guia.IndicaMotivoTraslado,
guia.Peso, guia.UniMedPesoBruto, guia.NumBultosPallets,
guia.MovilTraslado, guia.FechaInicioTraslado,
guia.NumRucTransportista, guia.TipoDocTransportista,
guia.RazonSocialTransportista, guia.TipoDocConductor,
guia.NumDocConductor, guia.UbigeoPuntoLlegada, guia.NumContenedor,
guia.UbigeoPuntoPartida,
guia.CodPuertoEmbDes, guia.RazonSocialConductor,guia.IDCOMPROBANTE,
guia.tipoTransporte ).FirstOrDefault().Value);
}

public int AgregarSalidaVenta_trans(CUE00001 det, List<VMIngresosV2>


ingres, string numerodoc, string numero, string qlmo)
{
string cn = ConexionDAO.SELECTOS;
string cue = "CUE" + numero;
string sal = "SAL" + numero;
string kardex = "KAR" + numero;

/***********************KARDEX**********************/

string proc1 = "INSERT INTO " + cue + UtilAlm.CAB_SALIDA;


string proc2 = "INSERT INTO " + sal + UtilAlm.DET_SALIDA;
string proc3 = "UPDATE " + qlmo + UtilAlm.STOCK_UPDV;
string proc4 = "INSERT INTO " + kardex + UtilAlm.KARDEX;
int ident = 0;

//proc1 = "INSERT INTO " + cue + UtilAlm.CAB_SALIDA;

using (SqlConnection cnx = new SqlConnection(cn))


{
cnx.Open();
SqlTransaction trans = cnx.BeginTransaction();
try
{
//Crear un comando para ejecutar un procedimiento almacenado
using (SqlCommand cmd = new SqlCommand(proc1, cnx, trans))
{
//Definir el tipo de comando a ejecutar a Store procedure

cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@FECHAEMISION",
det.FECHAEMISION);
cmd.Parameters.AddWithValue("@IDTMOV", det.IDTMOV);
cmd.Parameters.AddWithValue("@IDMONEDA", det.IDMONEDA);
cmd.Parameters.AddWithValue("@GUIAINTERNA",
det.GUIAINTERNA);
cmd.Parameters.AddWithValue("@OBSERVACIONES",
det.OBSERVACIONES);
cmd.Parameters.AddWithValue("@IDTIPOCOMP", det.IDTIPOCOMP);
cmd.Parameters.AddWithValue("@SERIE", det.SERIE);
cmd.Parameters.AddWithValue("@NUMERO", numerodoc);
cmd.Parameters.AddWithValue("@FACTOR", det.FACTOR);
cmd.Parameters.AddWithValue("@INCLIGV", det.INCLIGV);
cmd.Parameters.AddWithValue("@DSCTO", det.DSCTO);
cmd.Parameters.AddWithValue("@SUBTOTAL", det.SUBTOTAL);
cmd.Parameters.AddWithValue("@IGV", det.IGV);
cmd.Parameters.AddWithValue("@TOTAL", det.TOTAL);
cmd.Parameters.AddWithValue("@IDALMACENMOV", qlmo);

/*************************MAS**********************************/
cmd.Parameters.AddWithValue("@NUMDOC", det.NUMDOC);
cmd.Parameters.AddWithValue("@CLIENTE", det.CLIENTE);
cmd.Parameters.AddWithValue("@DIRECCION", det.DIRECCION);
cmd.Parameters.AddWithValue("@USUARIO", det.USUARIO);
cmd.Parameters.AddWithValue("@IDFPAGO", det.IDFPAGO);
/****************MAS***********************************/
cmd.Parameters.AddWithValue("@PAGOCON", det.PAGOCON);
cmd.Parameters.AddWithValue("@SALDO", det.SALDO);
cmd.Parameters.AddWithValue("@ABONO", det.ABONO);
cmd.Parameters.AddWithValue("@FECHACAN", det.FECHACAN ==
null ? DBNull.Value : (object)det.FECHACAN);
cmd.Parameters.AddWithValue("@TOTALA", det.TOTALA);
/*****************************************************/
cmd.Parameters.AddWithValue("@CUENTA", det.CUENTA);
cmd.Parameters.AddWithValue("@CHSER", det.CHSER);
cmd.Parameters.AddWithValue("@T_COMPRA", det.T_COMPRA);
cmd.Parameters.AddWithValue("@T_VENTA", det.T_VENTA);
cmd.Parameters.AddWithValue("@PLACA", det.PLACA);
cmd.Parameters.AddWithValue("@ESTADO", det.ESTADO);
cmd.Parameters.AddWithValue("@FECHAVENCIMIENTO",
det.FECHAVENCIMIENTO);
cmd.Parameters.AddWithValue("@COMEN", det.COMEN);
//Ejecutar el store procedure
ident = Convert.ToInt32(cmd.ExecuteScalar()); //return
ident;
}

foreach (VMIngresosV2 u in ingres)


{
SqlCommand cmd4 = new SqlCommand(proc2, cnx, trans);

cmd4.CommandType = CommandType.Text;
cmd4.Parameters.AddWithValue("@CODCOM", u.CODCOM);
cmd4.Parameters.AddWithValue("@CANTIDAD", u.CANTIDAD);
cmd4.Parameters.AddWithValue("@PRECIO", u.PRECIO);
cmd4.Parameters.AddWithValue("@TOTAL", u.TOTAL);
cmd4.Parameters.AddWithValue("@IDCUE", ident);
cmd4.ExecuteNonQuery();
/*************UPDATEARTICULOS***********************/
SqlCommand cmd5 = new SqlCommand(proc3, cnx, trans);
cmd5.CommandType = CommandType.Text;
cmd5.Parameters.AddWithValue("@codcom", u.CODCOM);
cmd5.Parameters.AddWithValue("@cantidad", u.CANTIDAD);
cmd5.Parameters.AddWithValue("@precio", u.PRECIO);

cmd5.ExecuteNonQuery();

SqlCommand cmd6 = new SqlCommand(proc4, cnx, trans);

cmd6.Parameters.AddWithValue("@CODCOM", u.CODCOM);
cmd6.Parameters.AddWithValue("@FECHA", det.FECHAEMISION);
cmd6.Parameters.AddWithValue("@IDTMOV", 5);
cmd6.Parameters.AddWithValue("@SERIE", det.SERIE);
cmd6.Parameters.AddWithValue("@NUMERO", det.NUMERO);
cmd6.Parameters.AddWithValue("@RUC_CLIENTE", det.NUMDOC);
cmd6.Parameters.AddWithValue("@RAZON", det.CLIENTE);
cmd6.Parameters.AddWithValue("@ALMACEN", qlmo);
cmd6.Parameters.AddWithValue("@MONEDA", det.IDMONEDA);
cmd6.Parameters.AddWithValue("@PRECIO", u.PRECIO);
cmd6.Parameters.AddWithValue("@PS", ident);
cmd6.Parameters.AddWithValue("@PE", "");
cmd6.Parameters.AddWithValue("@SALE", u.CANTIDAD);
cmd6.Parameters.AddWithValue("@SALDO", u.STOCKUPDATE);
cmd6.Parameters.AddWithValue("@RUC_PROVEEDOR", "");
cmd6.Parameters.AddWithValue("@ENTRA", "");

cmd6.ExecuteNonQuery();
}

trans.Commit();
}
catch (Exception ex)
{
trans.Rollback();
throw new Exception(ex.Message);
}
finally
{
trans.Dispose();
}

}
return ident;
}

public string[] RegistrarVenta(CABECERA cab, List<DETALLE> detalles,


ABONO_CC pago, int NumNotaPedido, GUIA_REMISION guia)
{
//using (TransactionScope trans = new TransactionScope())
//{

string cn = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cn;
using (var dbContextTransaction = db.Database.BeginTransaction())
{
try
{
VentaDAO Vdb = new VentaDAO();
string id = InsertarCabecera(cab);
string[] datos = id.Split('-');
InsertarDetalles(detalles, Convert.ToInt32(datos[0]));
pago.NSAL = Convert.ToString(datos[0]);
Vdb.RegistrarVenta_Pago(pago);

string almacen = detalles[0].idAlm;


using (DocumentoDAO DBD = new DocumentoDAO())
{
USP_OBTENER_DOCUMENTO_ID_Result docRes =
DBD.OBTENER_DOCUMENTO_ID(cab.Cab_Fac_TipoDocumento);
if (docRes != null)
{
Entity.DOCUMENTOS doc = new Entity.DOCUMENTOS();

doc.id = cab.Cab_Fac_TipoDocumento;
doc.codigo = docRes.CODIGO;
doc.nombre = docRes.NOMBRE;
doc.mov = "G";
doc.serie = cab.Cab_Fac_Serie;
doc.numero = cab.Cab_Fac_Numero;

DBD.RegistrarDocumentoMovimiento(doc);
}
}

ActualizarDatosCabecera(almacen, NumNotaPedido,Convert.ToInt32(
pago.NSAL), Convert.ToInt32(datos[0]));

foreach (DETALLE detalle in detalles)


{
EstablecerPedidoAtendidoEF(detalle.idAlm,
detalle.Det_CodigoArticulo, NumNotaPedido);
}
guia.NumDocRelacionado = guia.NumDocRelacionado.Substring(0, 4)
+ "-" + datos[1].ToString();
guia.IDCOMPROBANTE = Convert.ToInt32(datos[0]);
RegistrarGuiaRemision(guia);
dbContextTransaction.Commit();
return datos;
}
catch (Exception ex)
{
dbContextTransaction.Rollback();
throw new Exception(ex.Message);
}
finally
{
dbContextTransaction.Dispose();
}
}
}

public string[] RegistrarVenta(CABECERA cab, List<DETALLE> detalles,


ABONO_C pago)
{
//using (TransactionScope trans = new TransactionScope())
//{

string cn = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cn;
using (var dbContextTransaction = db.Database.BeginTransaction())
{
try
{
VentaDAO Vdb = new VentaDAO();
string id = InsertarCabecera(cab);
string[] datos = id.Split('-');
InsertarDetalles(detalles, Convert.ToInt32(datos[0]));
// pago.NumeroSalida = Convert.ToInt32(datos[0]);
// Vdb.RegistrarVenta_Pago(pago);
string almacen = detalles[0].idAlm;
using (DocumentoDAO DBD = new DocumentoDAO())
{
USP_OBTENER_DOCUMENTO_ID_Result docRes =
DBD.OBTENER_DOCUMENTO_ID(cab.Cab_Fac_TipoDocumento);
if (docRes != null)
{
Entity.DOCUMENTOS doc = new Entity.DOCUMENTOS();
doc.id = cab.Cab_Fac_TipoDocumento;
doc.codigo = docRes.CODIGO;
doc.nombre = docRes.NOMBRE;
doc.mov = "G";
doc.serie = cab.Cab_Fac_Serie;
doc.numero = cab.Cab_Fac_Numero;
DBD.RegistrarDocumentoMovimiento(doc);
}
}
ActualizarDatosCabecera(almacen, 0,Convert.ToInt32( pago.NSAL),
Convert.ToInt32(datos[0]));
string nomBarras = cab.Cab_Fac_TipoDocumento + "-" +
cab.Cab_Fac_Serie + "-" + cab.Cab_Fac_Numero + ".png";
ActualizaCabeceraUpdateCodbarras(Convert.ToInt32(datos[0]),
nomBarras);
foreach (DETALLE detalle in detalles)
{
EstablecerPedidoAtendidoEF(detalle.idAlm,
detalle.Det_CodigoArticulo, 0);
}
dbContextTransaction.Commit();
return datos;
}
catch (Exception ex)
{
dbContextTransaction.Rollback();
throw new Exception(ex.InnerException.Message);
}
finally
{
dbContextTransaction.Dispose();
}
}
}

public string[] RegistrarVentaEfectivo(CABECERA cab, List<DETALLE>


detalles,

GUIA_REMISION guia)
{
//using (TransactionScope trans = new TransactionScope())
//{

string cn = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cn;
using (var dbContextTransaction = db.Database.BeginTransaction())
{
string[] datos = null;
try
{
VentaDAO Vdb = new VentaDAO();
string id = InsertarCabecera(cab);
//GrabarNumeroDoc(cab.Cab_Fac_TipoDocumento,
cab.Cab_Fac_Serie);

datos = id.Split('-');
InsertarDetalles(detalles, Convert.ToInt32(datos[0]));
// pago.NumeroSalida = Convert.ToInt32(datos[0]);
// Vdb.RegistrarVenta_Pago(pago);
string almacen = detalles[0].idAlm;
using (DocumentoDAO DBD = new DocumentoDAO())
{
USP_OBTENER_DOCUMENTO_ID_Result docRes =
DBD.OBTENER_DOCUMENTO_ID(cab.Cab_Fac_TipoDocumento);
if (docRes != null)
{
Entity.DOCUMENTOS doc = new Entity.DOCUMENTOS();
doc.id = cab.Cab_Fac_TipoDocumento;
doc.codigo = docRes.CODIGO;
doc.nombre = docRes.NOMBRE;
doc.mov = "G";
doc.serie = cab.Cab_Fac_Serie;
doc.numero = cab.Cab_Fac_Numero;
DBD.RegistrarDocumentoMovimiento(doc);
}
}
//ActualizarDatosCabecera(almacen, 0,
Convert.ToInt32(pago.NumeroSalida), Convert.ToInt32(datos[0]));
string nomBarras = cab.Cab_Fac_TipoDocumento + "-" +
cab.Cab_Fac_Serie + "-" + cab.Cab_Fac_Numero + ".png";
ActualizaCabeceraUpdateCodbarras(Convert.ToInt32(datos[0]),
nomBarras);
foreach (DETALLE detalle in detalles)
{
EstablecerPedidoAtendidoEF(detalle.idAlm,
detalle.Det_CodigoArticulo, 0);
}

if (guia!=null)
{
using (GuiaRemisionDAO dbg = new GuiaRemisionDAO())
{
guia.NumDocRelacionado
=guia.NumDocRelacionado.Substring(0,4)+"-" +datos[1].ToString();
guia.IDCOMPROBANTE = Convert.ToInt32(datos[0]);
decimal idguia= dbg.GrabareGuiaRemision(guia);
Array.Resize(ref datos, 3);
datos[2] = idguia.ToString();
}
}
dbContextTransaction.Commit();
return datos;
}
catch (Exception ex)
{
dbContextTransaction.Rollback();
throw new Exception(ex.InnerException.Message);
}
finally
{
dbContextTransaction.Dispose();
}
}
}

//Con guia de remisión


public string[] RegistrarVenta(CABECERA cab, List<DETALLE> detalles,
ABONO_C pago, GUIA_REMISION guia)
{

string cn = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cn;
//using (TransactionScope trans = new TransactionScope())
//{
using (var dbContextTransaction = db.Database.BeginTransaction())
{
try
{
VentaDAO Vdb = new VentaDAO();
string id = InsertarCabecera(cab);
string[] datos = id.Split('-');
InsertarDetalles(detalles, Convert.ToInt32(datos[0]));
//pago.NumeroSalida = Convert.ToInt32(datos[0]);
//Vdb.RegistrarVenta_Pago(pago);

string almacen = detalles[0].idAlm;


using (DocumentoDAO DBD = new DocumentoDAO())
{
USP_OBTENER_DOCUMENTO_ID_Result docRes =
DBD.OBTENER_DOCUMENTO_ID(cab.Cab_Fac_TipoDocumento);
if (docRes != null)
{
Entity.DOCUMENTOS doc = new Entity.DOCUMENTOS();

doc.id = cab.Cab_Fac_TipoDocumento;
doc.codigo = docRes.CODIGO;
doc.nombre = docRes.NOMBRE;
doc.mov = "G";
doc.serie = cab.Cab_Fac_Serie;
doc.numero = cab.Cab_Fac_Numero;

DBD.RegistrarDocumentoMovimiento(doc);
}
}

ActualizarDatosCabecera(almacen, 0,
Convert.ToInt32( pago.NSAL), Convert.ToInt32(datos[0]));
string nomBarras = cab.Cab_Fac_TipoDocumento + "-" +
cab.Cab_Fac_Serie + "-" + cab.Cab_Fac_Numero
+ ".png";

ActualizaCabeceraUpdateCodbarras(Convert.ToInt32(datos[0]),
nomBarras);
foreach (DETALLE detalle in detalles)
{
EstablecerPedidoAtendidoEF(detalle.idAlm,
detalle.Det_CodigoArticulo, 0);
}

using (GuiaRemisionDAO dbg = new GuiaRemisionDAO())


{
guia.NumDocRelacionado =
guia.NumDocRelacionado.Substring(0, 4) + "-" + datos[1].ToString();
guia.IDCOMPROBANTE = Convert.ToInt32(datos[0]);

decimal idguia = dbg.GrabareGuiaRemision(guia);


Array.Resize(ref datos, 3);
datos[2] = idguia.ToString();
}

dbContextTransaction.Commit();
return datos;
}
catch (Exception ex)
{
dbContextTransaction.Rollback();
throw new Exception(ex.InnerException.Message);
}
finally
{
dbContextTransaction.Dispose();
}
}
}

public string[] RegistrarVenta(CABECERA cab, List<DETALLE> detalles,


ABONO_C pago, int NumNotaPedido)
{
//using (TransactionScope trans = new TransactionScope())
//{

string cn = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cn;
using (var dbContextTransaction = db.Database.BeginTransaction())
{
try
{
VentaDAO Vdb = new VentaDAO();
string id = InsertarCabecera(cab);
string[] datos = id.Split('-');
InsertarDetalles(detalles, Convert.ToInt32(datos[0]));
//pago.NumeroSalida = Convert.ToInt32(datos[0]);
//Vdb.RegistrarVenta_Pago(pago);

string almacen = detalles[0].idAlm;


using (DocumentoDAO DBD = new DocumentoDAO())
{
USP_OBTENER_DOCUMENTO_ID_Result docRes =
DBD.OBTENER_DOCUMENTO_ID(cab.Cab_Fac_TipoDocumento);
if (docRes != null)
{
Entity.DOCUMENTOS doc = new Entity.DOCUMENTOS();

doc.id = cab.Cab_Fac_TipoDocumento;
doc.codigo = docRes.CODIGO;
doc.nombre = docRes.NOMBRE;
doc.mov = "G";
doc.serie = cab.Cab_Fac_Serie;
doc.numero = cab.Cab_Fac_Numero;

DBD.RegistrarDocumentoMovimiento(doc);
}
}
ActualizarDatosCabecera(almacen, NumNotaPedido,
Convert.ToInt32(pago.NSAL), Convert.ToInt32(datos[0]));

string nomBarras = cab.Cab_Fac_TipoDocumento + "-" +


cab.Cab_Fac_Serie + "-" + cab.Cab_Fac_Numero + ".png";
ActualizaCabeceraUpdateCodbarras(Convert.ToInt32(datos[0]),
nomBarras);
foreach (DETALLE detalle in detalles)
{
EstablecerPedidoAtendidoEF(detalle.idAlm,
detalle.Det_CodigoArticulo, NumNotaPedido);
}

dbContextTransaction.Commit();
return datos;
}
catch (Exception ex)
{
dbContextTransaction.Rollback();
throw new Exception(ex.Message);
}
finally
{
dbContextTransaction.Dispose();
}
}
}

public string[] RegistrarVenta(CABECERA cab, List<DETALLE> detalles)


{
//using (TransactionScope trans = new TransactionScope())
//{

string cn = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cn;
using (var dbContextTransaction = db.Database.BeginTransaction())
{
try
{
VentaDAO Vdb = new VentaDAO();
string id = InsertarCabecera(cab);
string[] datos = id.Split('-');
InsertarDetalles(detalles, Convert.ToInt32(datos[0]));
//pago.NumeroSalida = Convert.ToInt32(datos[0]);
//Vdb.RegistrarVenta_Pago(pago);

string almacen = detalles[0].idAlm;


using (DocumentoDAO DBD = new DocumentoDAO())
{
USP_OBTENER_DOCUMENTO_ID_Result docRes =
DBD.OBTENER_DOCUMENTO_ID(cab.Cab_Fac_TipoDocumento);
if (docRes != null)
{
Entity.DOCUMENTOS doc = new Entity.DOCUMENTOS();

doc.id = cab.Cab_Fac_TipoDocumento;
doc.codigo = docRes.CODIGO;
doc.nombre = docRes.NOMBRE;
doc.mov = "G";
doc.serie = cab.Cab_Fac_Serie;
doc.numero = cab.Cab_Fac_Numero;

DBD.RegistrarDocumentoMovimiento(doc);
}
}
ActualizarDatosCabecera(almacen, 0, 0,
Convert.ToInt32(datos[0]));
string nomBarras = cab.Cab_Fac_TipoDocumento + "-" +
cab.Cab_Fac_Serie + "-" + cab.Cab_Fac_Numero + ".png";
ActualizaCabeceraUpdateCodbarras(Convert.ToInt32(datos[0]),
nomBarras);

foreach (DETALLE detalle in detalles)


{
EstablecerPedidoAtendidoEF(detalle.idAlm,
detalle.Det_CodigoArticulo, 0);
}

dbContextTransaction.Commit();
return datos;
}
catch (Exception ex)
{
dbContextTransaction.Rollback();
throw new Exception(ex.Message);
}
finally
{
dbContextTransaction.Dispose();
}
}
}

//Registrar Venta a credito con Guia


public string[] RegistrarVenta(CABECERA cab, List<DETALLE> detalles,
GUIA_REMISION guia)
{
//using (TransactionScope trans = new TransactionScope())
//{
string cn = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cn;
using (var dbContextTransaction = db.Database.BeginTransaction())
{
try
{
VentaDAO Vdb = new VentaDAO();
string id = InsertarCabecera(cab);
string[] datos = id.Split('-');
InsertarDetalles(detalles, Convert.ToInt32(datos[0]));
//pago.NumeroSalida = Convert.ToInt32(datos[0]);
//Vdb.RegistrarVenta_Pago(pago);

string almacen = detalles[0].idAlm;


using (DocumentoDAO DBD = new DocumentoDAO())
{
USP_OBTENER_DOCUMENTO_ID_Result docRes =
DBD.OBTENER_DOCUMENTO_ID(cab.Cab_Fac_TipoDocumento);
if (docRes != null)
{
Entity.DOCUMENTOS doc = new Entity.DOCUMENTOS();

doc.id = cab.Cab_Fac_TipoDocumento;
doc.codigo = docRes.CODIGO;
doc.nombre = docRes.NOMBRE;
doc.mov = "G";
doc.serie = cab.Cab_Fac_Serie;
doc.numero = cab.Cab_Fac_Numero;

DBD.RegistrarDocumentoMovimiento(doc);
}
}
ActualizarDatosCabecera(almacen, 0, 0,
Convert.ToInt32(datos[0]));
string nomBarras = cab.Cab_Fac_TipoDocumento + "-" +
cab.Cab_Fac_Serie + "-" + cab.Cab_Fac_Numero + ".png";
ActualizaCabeceraUpdateCodbarras(Convert.ToInt32(datos[0]),
nomBarras);

foreach (DETALLE detalle in detalles)


{
EstablecerPedidoAtendidoEF(detalle.idAlm,
detalle.Det_CodigoArticulo, 0);
}
using (GuiaRemisionDAO dbg = new GuiaRemisionDAO())
{
guia.NumDocRelacionado =
guia.NumDocRelacionado.Substring(0, 4) + "-" + datos[1].ToString();
guia.IDCOMPROBANTE = Convert.ToInt32(datos[0]);
decimal idguia = dbg.GrabareGuiaRemision(guia);
Array.Resize(ref datos, 3);
datos[2] = idguia.ToString();
}

dbContextTransaction.Commit();
return datos;
}
catch (Exception ex)
{
dbContextTransaction.Rollback();
throw new Exception(ex.Message);
}
finally
{
dbContextTransaction.Dispose();
}
}
}

public int ActualizarStockArticulo(string CodalmSerie, int cantidad, string


CODCOM)
{
try
{
VentaDAO Vdb = new VentaDAO();

string cnx = ConexionDAO.SELECTOS;


db.Database.Connection.ConnectionString = cnx;
using (SqlConnection cn = new SqlConnection(cnx))
{
string sql = "UPDATE QLM00" + CodalmSerie + " SET STOCK=STOCK
-" + cantidad + " WHERE CODCOM='" + CODCOM + "'";
using (SqlCommand cmd = new SqlCommand(sql, cn))
{
cn.Open();
return cmd.ExecuteNonQuery();
}
}

}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
}
}

public int ActualizarStockArticulo_FE(string CodalmSerie, int cantidad,


string CODCOM)
{
try
{
string s_serie = CodalmSerie.Substring(3, 1);
CodalmSerie = s_serie.PadLeft(3, '0');

string cnx = ConexionDAO.SELECTOS;


db.Database.Connection.ConnectionString = cnx;

VentaDAO Vdb = new VentaDAO();


using (SqlConnection cn = new SqlConnection(cnx))
{
string sql = "UPDATE QLM00" + CodalmSerie + " SET STOCK=STOCK
-" + cantidad + " WHERE CODCOM='" + CODCOM + "'";
using (SqlCommand cmd = new SqlCommand(sql, cn))
{
cn.Open();
return cmd.ExecuteNonQuery();
}
}

}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
}
}
public int IncrementarStockArticulo(string CodalmSerie, int cantidad,
string CODCOM)
{
try
{

string cn = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cn;
string sql = "UPDATE QLM00" + CodalmSerie + " SET STOCK=STOCK +" +
cantidad + " WHERE CODCOM='" + CODCOM + "'";
db.Database.ExecuteSqlCommand(sql);
return 1;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
}
}

public int DecrementarStockArticulo_FE(string Codalm, int cantidad, string


CODCOM)
{
try
{

string cn = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cn;
string sql = "UPDATE " + Codalm + " SET STOCK=STOCK -" + cantidad
+ " WHERE CODCOM='" + CODCOM + "'";
db.Database.ExecuteSqlCommand(sql);
return 1;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
}
}
public int IncrementarStockArticulo_FE(string CodalmSerie, int cantidad,
string CODCOM)
{
try
{

string cn = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cn;
string serie = CodalmSerie.Substring(3, 1);
CodalmSerie = serie.PadLeft(3, '0');
string sql = "UPDATE QLM00" + CodalmSerie + " SET STOCK=STOCK +" +
cantidad + " WHERE CODCOM='" + CODCOM + "'";
db.Database.ExecuteSqlCommand(sql);
return 1;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
}
}

public int ElimimarRegistro_Kardex(string CodalmSerie, int cantidad, string


CODCOM, String TC)
{
try
{
//VentaDAO Vdb = new VentaDAO();
//using (SqlConnection cn = new SqlConnection(""))
//{

string cn = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cn;
string sql = "DELETE FROM KAR00" + CodalmSerie +
" WHERE TIPOCOMPROBANTE='" + TC + "' AND SERIE='" +
CodalmSerie +
"'AND CODCOM='" + CODCOM + "'";

db.Database.ExecuteSqlCommand(sql);
return 1;

//using (SqlCommand cmd = new SqlCommand(sql, cn))


//{
// cn.Open();
// return cmd.ExecuteNonQuery();
//}
// }

}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
}
}

public int ElimimarRegistro_Kardex_FE(string CodalmSerie, int cantidad,


string CODCOM, String TC)
{
try
{
//VentaDAO Vdb = new VentaDAO();
//using (SqlConnection cn = new SqlConnection(""))
//{

string cn = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cn;
string serie = CodalmSerie.Substring(3, 1);
serie = serie.PadLeft(3, '0');

string sql = "DELETE FROM KAR00" + CodalmSerie +


" WHERE TIPOCOMPROBANTE='" + TC + "' AND SERIE='" +
CodalmSerie +
"'AND CODCOM='" + CODCOM + "'";

db.Database.ExecuteSqlCommand(sql);
return 1;

//using (SqlCommand cmd = new SqlCommand(sql, cn))


//{
// cn.Open();
// return cmd.ExecuteNonQuery();
//}
// }

}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
}
}

public int ActualizarRecordSalida(string CodalmSerie, int cantidad, string


CODCOM, int idcue)
{
try
{

string cns = ConexionDAO.SELECTOS;


db.Database.Connection.ConnectionString = cns;
using (SqlConnection cn = new SqlConnection(cns))
{
string sql = "UPDATE SAL00" + CodalmSerie + " SET CANTIDAD=" +
cantidad + " WHERE CODCOM='" + CODCOM + "' AND IDCUE=" + idcue;
using (SqlCommand cmd = new SqlCommand(sql, cn))
{
cn.Open();
return cmd.ExecuteNonQuery();
}
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
}
}

public int ActualizarRecordSalida_FE(string CodalmSerie, int cantidad,


string CODCOM, int idcue)
{
try
{

string cns = ConexionDAO.SELECTOS;

string serie = CodalmSerie.Substring(3, 1);


serie = serie.PadLeft(3, '0');
using (SqlConnection cn = new SqlConnection(cns))
{
string sql = "UPDATE SAL00" + serie + " SET CANTIDAD=" +
cantidad + " WHERE CODCOM='" + CODCOM + "' AND IDCUE=" + idcue;

using (SqlCommand cmd = new SqlCommand(sql, cn))


{
cn.Open();
return cmd.ExecuteNonQuery();
}
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
}
}

//public int ActualizarSalida(CUE00001 cue ,List< SAL00001> detalles)


//{

// foreach(SAL00001 det in detalles)


// {

// }
//}

public string[] RegistrarVenta_Notas(CABECERA cab, List<DETALLE> detalles,


DataGridView dgvDetalles,
string NumeroSalida, string cue,
string sal)
{

string cn = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cn;
using (var dbContextTransaction = db.Database.BeginTransaction())
{
try
{
//VentaDAO Vdb = new VentaDAO();

string id = InsertarCabecera(cab);
string[] datos = id.Split('-');
InsertarDetalles(detalles, Convert.ToInt32(datos[0]));

if (cab.Cab_Fac_TipoDocumento == "07" &&


(cab.Cab_Ref_TipoNotaCredito == "01" ||

cab.Cab_Ref_TipoNotaCredito == "02" ||

cab.Cab_Ref_TipoNotaCredito == "06"))
{
AnularComprobante(cab.Cab_Fac_TipoDocumento,
cab.Cab_Fac_Serie, cab.Cab_Fac_Numero, cue, sal);

foreach (DataGridViewRow fila in dgvDetalles.Rows)


{
DevolverStock(Convert.ToString(fila.Cells[1].Value),
Convert.ToInt32(fila.Cells[4].Value), cab.Cab_Fac_Serie);
}
AnularRegistroPagoVenta(NumeroSalida, "ABONO_C");
AnularRegistroSalida(NumeroSalida, "CUE00" +
cab.Cab_Fac_Serie, "SAL00" + cab.Cab_Fac_Serie);
AnularRegistroKardex(NumeroSalida, "KAR00" +
cab.Cab_Fac_Serie);
}
else if (cab.Cab_Fac_TipoDocumento == "07" &&
(cab.Cab_Ref_TipoNotaCredito == "07"))
{
foreach (DETALLE det in detalles)
{
ActualizarStockArticulo(cab.Cab_Fac_Serie,
Convert.ToInt32(det.ctdUnidadItem), det.Det_CodigoArticulo);
}
}

//Confirmar la transaccion
dbContextTransaction.Commit();
return datos;
}
catch (Exception ex)
{
dbContextTransaction.Rollback();
throw new Exception(ex.Message);
}
finally
{
dbContextTransaction.Dispose();
// trans.Dispose();
}
}
}
/// ///////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////
public int RegistrarKardex_Anulacion(CUE00001 det, List<VMIngresosV2>
ingres, ING00001 ING,
string
KAR, string qlmo, int salida, string usuariocrea, DateTime fechacrea)
{

string cns= ConexionDAO.SELECTOS;


/***********************KARDEX**********************/
string proc4 = "INSERT INTO " + KAR + UtilAlm.KARDEX;
int ident = 0;

using (SqlConnection cnx = new SqlConnection(cns))


{
cnx.Open();
SqlTransaction trans = cnx.BeginTransaction();
try
{
foreach (VMIngresosV2 u in ingres)
{
SqlCommand cmd6 = new SqlCommand(proc4, cnx, trans);
cmd6.Parameters.AddWithValue("@CODCOM", u.CODCOM);
cmd6.Parameters.AddWithValue("@FECHA", det.FECHAEMISION);
cmd6.Parameters.AddWithValue("@IDTMOV", 5);
cmd6.Parameters.AddWithValue("@SERIE", det.SERIE);
cmd6.Parameters.AddWithValue("@NUMERO", det.NUMERO);
cmd6.Parameters.AddWithValue("@RUC_CLIENTE", det.NUMDOC);
cmd6.Parameters.AddWithValue("@RAZON", det.CLIENTE);
cmd6.Parameters.AddWithValue("@ALMACEN", qlmo);
cmd6.Parameters.AddWithValue("@MONEDA", det.IDMONEDA);
cmd6.Parameters.AddWithValue("@PRECIO", u.PRECIO);
cmd6.Parameters.AddWithValue("@PS", ident);
cmd6.Parameters.AddWithValue("@PE", "");
cmd6.Parameters.AddWithValue("@SALE", u.CANTIDAD);
cmd6.Parameters.AddWithValue("@SALDO", u.STOCKUPDATE);
cmd6.Parameters.AddWithValue("@RUC_PROVEEDOR", "");
cmd6.Parameters.AddWithValue("@ENTRA", "");
cmd6.Parameters.AddWithValue("@TIPOCOMPROBANTE",
det.IDTIPOCOMP);
cmd6.Parameters.AddWithValue("@OBSERVACIONES",
det.OBSERVACIONES);
cmd6.Parameters.AddWithValue("@USUARIO", det.USUARIO);
cmd6.ExecuteNonQuery();
}
trans.Commit();
}
catch (Exception ex)
{
trans.Rollback();
throw new Exception(ex.Message);
}
finally
{
trans.Dispose();
}
}
return ident;
}

public string[] RegistrarVenta_Notas_FE(CABECERA cab, List<DETALLE>


detalles, DataGridView dgvDetalles,
string NumeroSalida, string cue,
string sal,string almacen,List<VMIngresosV2> ing, string com,
string kar, string ingreso )
{

string cn = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cn;
using (var dbContextTransaction = db.Database.BeginTransaction())
{
try
{
string id = InsertarCabecera(cab);
string[] datos = id.Split('-');
InsertarDetalles(detalles, Convert.ToInt32(datos[0]));
string s_serie = cab.Cab_Fac_Serie;
string numNC = cab.Cab_Fac_Serie + "-" + cab.Cab_Fac_Numero;
// s_serie = s_serie.PadLeft(3, '0');
if (cab.Cab_Fac_TipoDocumento == "07" &&
(cab.Cab_Ref_TipoNotaCredito == "01" ||

cab.Cab_Ref_TipoNotaCredito == "02" ||

cab.Cab_Ref_TipoNotaCredito == "06"))
{
AnularComprobanteNC(cab.Cab_Ref_TipoDeDocumento,
cab.Cab_Ref_Serie, cab.Cab_Ref_Numero, cue, sal,

Convert.ToDateTime( cab.Cab_Fac_Fecha));
NumeroSalida = cab.NumSalida;
AnularRegistroPagoVenta(NumeroSalida, "ABONO_C");

using (IngresosDAO db = new IngresosDAO())


{
db.AgregarIngresoDevolucion(ing , kar, com, ingreso,
almacen,1, numNC);
}
}
else if (cab.Cab_Fac_TipoDocumento == "07" &&
(cab.Cab_Ref_TipoNotaCredito == "07"))
{
using (IngresosDAO db = new IngresosDAO())
{
db.AgregarIngresoDevolucioniTEM(ing, kar, com, ingreso,
almacen, 1, cue, NumeroSalida, numNC);
}
}
else if (cab.Cab_Fac_TipoDocumento == "07" &&
(cab.Cab_Ref_TipoNotaCredito == "04" || cab.Cab_Ref_TipoNotaCredito == "05" ||
cab.Cab_Ref_TipoNotaCredito == "07"))
{
using (IngresosDAO dbi = new IngresosDAO())
{
dbi.AgregarDescuentoxNC(ing, cue, numNC, NumeroSalida,
db);
}
}
//Confirmar la transaccion
db.USP_GRABAR_NUMERODOC_CAB(cab.Cab_Fac_TipoDocumento,
cab.Cab_Fac_Serie);
dbContextTransaction.Commit();
return datos;
}
catch (Exception ex)
{
dbContextTransaction.Rollback();
throw new Exception(ex.InnerException.Message);
}
finally
{
dbContextTransaction.Dispose();
// trans.Dispose();
}
}
}
public string[] Registrar_Venta(CABECERA cab, List<DETALLE> detalles,
ABONO_C pago, int NumNotaPedido, CUE00001 det, List<VMIngresosV2> ingres, string
numerodoc, string numero, string qlmo)
{
//using (TransactionScope trans = new TransactionScope())
//{

string cn = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cn;
using (var dbContextTransaction = db.Database.BeginTransaction())
{
try
{
VentaDAO Vdb = new VentaDAO();
string id = InsertarCabecera(cab);
string[] datos = id.Split('-');
InsertarDetalles(detalles, Convert.ToInt32(datos[0]));
//pago.NumeroSalida = Convert.ToInt32(datos[0]);
//Vdb.RegistrarVenta_Pago(pago);
string almacen = detalles[0].idAlm;
using (DocumentoDAO DBD = new DocumentoDAO())
{
USP_OBTENER_DOCUMENTO_ID_Result docRes =
DBD.OBTENER_DOCUMENTO_ID(cab.Cab_Fac_TipoDocumento);
if (docRes != null)
{
Entity.DOCUMENTOS doc = new Entity.DOCUMENTOS();

doc.id = cab.Cab_Fac_TipoDocumento;
doc.codigo = docRes.CODIGO;
doc.nombre = docRes.NOMBRE;
doc.mov = "G";
doc.serie = cab.Cab_Fac_Serie;
doc.numero = cab.Cab_Fac_Numero;

DBD.RegistrarDocumentoMovimiento(doc);
}
}

ActualizarDatosCabecera(almacen, NumNotaPedido,
Convert.ToInt32(pago.NSAL), Convert.ToInt32(cab.Cab_NumeroDeRegistro));

foreach (DETALLE detalle in detalles)


{
EstablecerPedidoAtendidoEF(detalle.idAlm,
detalle.Det_CodigoArticulo, NumNotaPedido);
}

dbContextTransaction.Commit();
return datos;
}
catch (Exception ex)
{
dbContextTransaction.Rollback();
throw new Exception(ex.Message);
}
finally
{
dbContextTransaction.Dispose();
}
}
}

public string[] RegistrarVenta_NotaCredito(CABECERA cab, List<DETALLE>


detalles, string cue, string sal)
{

string cn = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cn;
using (var dbContextTransaction = db.Database.BeginTransaction())
{
try
{
string id = InsertarCabecera(cab);
string[] datos = id.Split('-');
InsertarDetalles(detalles, Convert.ToInt32(datos[0]));

//Descuento Global, Descuento x Item


if (cab.Cab_Fac_TipoDocumento == "07" &&
(cab.Cab_Ref_TipoNotaCredito == "04" ||

cab.Cab_Ref_TipoNotaCredito == "05"))
{

}
//Bonificacion
else if (cab.Cab_Fac_TipoDocumento == "07" &&
(cab.Cab_Ref_TipoNotaCredito == "08"))

{
}
//Disminucion en el valor
else if (cab.Cab_Fac_TipoDocumento == "07" &&
(cab.Cab_Ref_TipoNotaCredito == "09"))

}
//correccion por error en la descripcion
else if (cab.Cab_Fac_TipoDocumento == "07" &&
(cab.Cab_Ref_TipoNotaCredito == "03"))
{

else if (cab.Cab_Fac_TipoDocumento == "07" &&


(cab.Cab_Ref_TipoNotaCredito == "01" ||

cab.Cab_Ref_TipoNotaCredito == "02" ||

cab.Cab_Ref_TipoNotaCredito == "06" ||

cab.Cab_Ref_TipoNotaCredito == "07"))
{
foreach (DETALLE det in detalles)
{
//Anulacion de operacion,Anulacion por el RUC,
devolucion total
if (cab.Cab_Ref_TipoNotaCredito == "01" ||
cab.Cab_Ref_TipoNotaCredito == "02" ||
cab.Cab_Ref_TipoNotaCredito == "06")
{
//Por devolucion de productos
IncrementarStockArticulo(cab.Cab_Fac_Serie,
Convert.ToInt32(det.ctdUnidadItem),

det.Det_CodigoArticulo);
//Por Anulacion por error o Devolucion Total

Kardex_devo_Total(Convert.ToInt32(det.ctdUnidadItem),
det.Det_CodigoArticulo,
cab.Cab_Fac_TipoDocumento,
cab.Cab_Fac_Serie,
cab.Cab_Fac_Numero);
AnularComprobante(cab.Cab_Fac_TipoDocumento,
cab.Cab_Fac_Serie, cab.Cab_Fac_Numero, cue, sal);
}
//Por Devolucion de Item
else if (cab.Cab_Ref_TipoNotaCredito == "07")
{

Kardex_devo_Parcial(Convert.ToInt32(det.ctdUnidadItem),
det.Det_CodigoArticulo,
cab.Cab_Fac_TipoDocumento,
cab.Cab_Fac_Serie,
cab.Cab_Fac_Numero);
}
}
}
//Confirmar la transaccion
dbContextTransaction.Commit();
return datos;
}
catch (Exception ex)
{
dbContextTransaction.Rollback();
throw new Exception(ex.Message);
}
finally
{
dbContextTransaction.Dispose();
// trans.Dispose();
}
}
}

public string[] RegistrarVenta_NotaCredito_FE(CABECERA cab, List<DETALLE>


detalles, string cue, string sal)
{

string cn = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cn;
using (var dbContextTransaction = db.Database.BeginTransaction())
{
try
{
string id = InsertarCabecera(cab);
string[] datos = id.Split('-');
InsertarDetalles(detalles, Convert.ToInt32(datos[0]));

//Descuento Global, Descuento x Item


if (cab.Cab_Fac_TipoDocumento == "07" &&
(cab.Cab_Ref_TipoNotaCredito == "04" ||

cab.Cab_Ref_TipoNotaCredito == "05"))
{

}
//Bonificacion
else if (cab.Cab_Fac_TipoDocumento == "07" &&
(cab.Cab_Ref_TipoNotaCredito == "08"))

}
//Disminucion en el valor
else if (cab.Cab_Fac_TipoDocumento == "07" &&
(cab.Cab_Ref_TipoNotaCredito == "09"))

}
//correccion por error en la descripcion
else if (cab.Cab_Fac_TipoDocumento == "07" &&
(cab.Cab_Ref_TipoNotaCredito == "03"))
{

}
else if (cab.Cab_Fac_TipoDocumento == "07" &&
(cab.Cab_Ref_TipoNotaCredito == "01" ||

cab.Cab_Ref_TipoNotaCredito == "02" ||

cab.Cab_Ref_TipoNotaCredito == "06" ||

cab.Cab_Ref_TipoNotaCredito == "07"))
{
foreach (DETALLE det in detalles)
{
//Anulacion de operacion,Anulacion por el RUC,
devolucion total
if (cab.Cab_Ref_TipoNotaCredito == "01" ||
cab.Cab_Ref_TipoNotaCredito == "02" ||
cab.Cab_Ref_TipoNotaCredito == "06")
{
//Por devolucion de productos
IncrementarStockArticulo_FE(cab.Cab_Fac_Serie,
Convert.ToInt32(det.ctdUnidadItem),

det.Det_CodigoArticulo);
//Por Anulacion por error o Devolucion Total

Kardex_devo_Total_FE(Convert.ToInt32(det.ctdUnidadItem),
det.Det_CodigoArticulo,
cab.Cab_Fac_TipoDocumento,
cab.Cab_Fac_Serie,
cab.Cab_Fac_Numero);
AnularComprobante(cab.Cab_Fac_TipoDocumento,
cab.Cab_Fac_Serie, cab.Cab_Fac_Numero, cue, sal);
}
//Por Devolucion de Item
else if (cab.Cab_Ref_TipoNotaCredito == "07")
{

Kardex_devo_Parcial_FE(Convert.ToInt32(det.ctdUnidadItem),
det.Det_CodigoArticulo,
cab.Cab_Fac_TipoDocumento,
cab.Cab_Fac_Serie,
cab.Cab_Fac_Numero);
}
}
}
//Confirmar la transaccion
dbContextTransaction.Commit();
return datos;
}
catch (Exception ex)
{
dbContextTransaction.Rollback();
throw new Exception(ex.Message);
}
finally
{
dbContextTransaction.Dispose();
// trans.Dispose();
}
}
}

public int AnularComprobante(CABECERA cab, List<DETALLE> detalles, string


cue, string sal)
{

string cn = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cn;
using (var dbContextTransaction = db.Database.BeginTransaction())
{

try
{
if (cab.Cab_Fac_TipoDocumento == "01" &&
(cab.Cab_Ref_TipoNotaCredito == "03"))
{

foreach (DETALLE det in detalles)


{
//Por devolucion de productos
IncrementarStockArticulo_FE(cab.Cab_Fac_Serie,
Convert.ToInt32(det.ctdUnidadItem),
det.Det_CodigoArticulo);
//Por Anulacion por error o Devolucion Total

Kardex_devo_Total_FE(Convert.ToInt32(det.ctdUnidadItem),
det.Det_CodigoArticulo,
cab.Cab_Fac_TipoDocumento,
cab.Cab_Fac_Serie,
cab.Cab_Fac_Numero);
AnularComprobante(cab.Cab_Fac_TipoDocumento,
cab.Cab_Fac_Serie, cab.Cab_Fac_Numero, cue, sal);
}
}
//Confirmar la transaccion
dbContextTransaction.Commit();
return 1;

}
catch (Exception ex)
{
dbContextTransaction.Rollback();
throw new Exception(ex.Message);
}
finally
{
dbContextTransaction.Dispose();
// trans.Dispose();
}
}
}

public string[] RegistrarVenta_NotaDebito(CABECERA cab, List<DETALLE>


detalles)
{
string cn = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cn;
using (var dbContextTransaction = db.Database.BeginTransaction())
{
try
{
//VentaDAO Vdb = new VentaDAO();

string id = InsertarCabecera(cab);
string[] datos = id.Split('-');
InsertarDetalles(detalles, Convert.ToInt32(datos[0]));
db.USP_GRABAR_NUMERODOC_CAB(cab.Cab_Fac_TipoDocumento,
cab.Cab_Fac_Serie);
dbContextTransaction.Commit();
return datos;
}
catch (Exception ex)
{
dbContextTransaction.Rollback();
throw new Exception(ex.Message);
}
finally
{
dbContextTransaction.Dispose();
}
}
}

public void AnularComprobante(string tipo, string serie, string numero,


String codalm, string sal)
{

string cn = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cn;
db.USP_ANULAR_COMPROBANTE_CUE(tipo, serie, numero, codalm, sal);
}
public void AnularComprobanteNC(string tipo, string serie, string numero,
String codalm, string sal ,DateTime fechacan)
{

string cn = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cn;
db.USP_ANULAR_COMPROBANTE_CUE_NC(tipo, serie, numero, codalm, sal,
fechacan);
}

public DataSet ObtenerComprobanteNumero(string tipo,string serie,string


numero,string cue,string sal)
{

string cns = ConexionDAO.SELECTOS;

using (SqlConnection cn = new SqlConnection(cns))


{
DataSet ds = new DataSet();
using (SqlCommand cmd = new SqlCommand("USP_OBTENERCOMPROBANTE",
cn))
{
cmd.Parameters.AddWithValue("@TIPO", tipo);
cmd.Parameters.AddWithValue("@SERIE", serie);
cmd.Parameters.AddWithValue("@NUMERO", numero);
cmd.Parameters.AddWithValue("@CUE", cue);
cmd.Parameters.AddWithValue("@SAL", sal);

cmd.CommandType = System.Data.CommandType.StoredProcedure;
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
{
da.Fill(ds);
}
return ds;
}
}
}

public int ActualizarNotaCreditoUsada(int id, string cue)


{

string cnx = ConexionDAO.SELECTOS;


using (SqlConnection cn = new SqlConnection(cnx))
{
DataSet ds = new DataSet();
using (SqlCommand cmd = new SqlCommand("Update " + cue + " SET NC=1
WHERE NPS=@ID", cn))
{
cmd.Parameters.AddWithValue("@ID", id);
cmd.CommandType = System.Data.CommandType.Text;
cn.Open();
return cmd.ExecuteNonQuery();
}
}
}

public DataSet ObtenerComprobanteCompra(string COM , string ING , string


IDCOM)
{
string cnx = ConexionDAO.SELECTOS;
using (SqlConnection cn = new SqlConnection(cnx))
{
DataSet ds = new DataSet();
using (SqlCommand cmd = new
SqlCommand("USP_OBTENERCOMPROBANTE_COMPRA", cn))
{
cmd.Parameters.AddWithValue("@COM", COM);
cmd.Parameters.AddWithValue("@ING", ING);
cmd.Parameters.AddWithValue("@IDCOM", IDCOM);

cmd.CommandType = System.Data.CommandType.StoredProcedure;
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
{
da.Fill(ds);
}
return ds;
}
}
}

public string ObtenerNumeroSalida(string tipo, string serie, string numero,


string almacen)
{
string cnx = ConexionDAO.SELECTOS;
using (SqlConnection cn = new SqlConnection(cnx))
{
DataSet ds = new DataSet();
using (SqlCommand cmd = new SqlCommand("USP_OBTENERNUMERO_SALIDA",
cn))
{
cmd.Parameters.AddWithValue("@TIPO", tipo);
cmd.Parameters.AddWithValue("@SERIE", serie);
cmd.Parameters.AddWithValue("@NUMERO", numero);
cmd.Parameters.AddWithValue("@almacen",almacen);

cmd.CommandType = System.Data.CommandType.StoredProcedure;
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
{
da.Fill(ds);
}
if (ds.Tables[0].Rows.Count > 0)
{
return ds.Tables[0].Rows[0]["numsalida"].ToString();
}
else
return "0";

}
}
}

public void AnularComprobante_FE(string tipo, string serie, string numero,


String cue, string sal, string almacen,string nsalida)
{
string cnx = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cnx;
using (var dbContextTransaction = db.Database.BeginTransaction())
{
try
{
DataSet ds = ObtenerComprobanteNumero(tipo, serie, numero, cue,
sal);
//string numsalida = ObtenerNumeroSalida(tipo, serie, numero,
almacen);
AnularRegistroPagoVenta(nsalida, "ABONO_C");
if (ds.Tables[1].Rows.Count > 0)
{
foreach (DataRow det in ds.Tables[1].Rows)
{
//Por devolucion de productos
IncrementarStockArticulo_FE(serie,
Convert.ToInt32(det["CANTIDAD"]),

det["CODCOM"].ToString());
//Por Anulacion por error o Devolucion Total
Kardex_devo_Total_FE(Convert.ToInt32(det["CANTIDAD"]),
det["CODCOM"].ToString(),
tipo,
serie,
numero);
}
db.USP_ANULAR_COMPROBANTE_CUE( tipo, serie, numero, cue,
sal);
dbContextTransaction.Commit();
}
}
catch (Exception ex)
{
dbContextTransaction.Rollback();
throw new Exception();
}
finally
{
dbContextTransaction.Dispose();
}
}
} //Por devolucion de productos

// public void AnularCompra_FE(string tipo, string serie, string numero,


String COM, string sal, string almacen,int idcom)
public void AnularCompra_FE(String COM, string ing, string almacen, string
idcom,string kar,string tipo, string serie, string numero)
{
string cnx = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cnx;
using (var dbContextTransaction = db.Database.BeginTransaction())
{
try
{
DataSet ds = ObtenerComprobanteCompra(COM,ing,idcom);
//string numsalida = ObtenerNumeroSalida(tipo, serie, numero,
almacen);
//AnularRegistroPagoCompra(numero, "PAGOS_VENTA");
RecordComprasDAO dbc = new RecordComprasDAO();
dbc.AnularRegistrosCompra( idcom, COM);
if (ds.Tables[1].Rows.Count > 0)
{
foreach (DataRow det in ds.Tables[1].Rows)
{
//Por devolucion de productos
DecrementarStockArticulo_FE(almacen ,
Convert.ToInt32(det["CANTIDAD"]),det["CODCOM"].ToString());
//Por Anulacion por error o Devolucion Total

Kardex_devo_Total_Compras(Convert.ToInt32(det["CANTIDAD"]),
det["CODCOM"].ToString(), idcom, kar);
}
db.USP_ANULAR_COMPROBANTE_COM( tipo, serie, numero, COM,
ing);
dbContextTransaction.Commit();
}
}
catch (Exception ex)
{
dbContextTransaction.Rollback();
throw new Exception();
}
finally
{
dbContextTransaction.Dispose();
}
}
} //Por devolucion de productos

public void Kardex_devo_Parcial(int cantidad,string codcom, string


tipoComprob, string serie, string numero)
{
string cnx = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cnx;
db.USP_ACT_KARDEX_DEV_PARCIAL(cantidad,codcom, tipoComprob, serie,
numero);
}

public void Kardex_devo_Parcial_FE(int cantidad, string codcom, string


tipoComprob, string serie, string numero)
{
string cnx = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cnx;
string s_serie = serie.Substring(3, 1);
s_serie = s_serie.PadLeft(3, '0');
db.USP_ACT_KARDEX_DEV_PARCIAL(cantidad, codcom, tipoComprob, serie,
numero);
}

public void Kardex_devo_INC_Parcial(int cantidad, string codcom, string


tipoComprob, string serie, string numero)
{
string cnx = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cnx;
db.USP_ACT_KARDEX_INC_PARCIAL(cantidad, codcom, tipoComprob, serie,
numero);
}

public void Kardex_devo_Total(int cantidad, string codcom, string


tipoComprob, string serie, string numero)

{
string cnx = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cnx;
db.USP_ACT_KARDEX_DEV_TOTAL(cantidad, codcom, tipoComprob, serie,
numero);
}

public void Kardex_devo_Total_FE(int cantidad, string codcom, string


tipoComprob, string serie, string numero)
{
string cnx = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cnx;
string s_serie = serie.Substring(3, 1);
s_serie = s_serie.PadLeft(3, '0');
db.USP_ACT_KARDEX_DEV_TOTAL(cantidad, codcom, tipoComprob, s_serie,
numero);
}

public void ACT_KARDEX_TRANS_SALIDA_CANT_MAYOR(int cantidad, string codcom,


int ps,string kar,int sale)
{
string cnx = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cnx;
db.USP_ACT_KARDEX_TRANS_SALIDA_CANT_MAYOR(cantidad, codcom, ps,
kar,sale);
}

public void Kardex_devo_Total_Compras(int cantidad, string codcom,string


pe,string kar)
{
string cnx = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cnx;
db.USP_ACT_KARDEX_DEV_TOTAL_COMPRA(cantidad, codcom, pe, kar);
}

public void DevolverStock(string codcom, int cantidad,string serie)


{
string cnx = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cnx;
db.USP_ACTUALIZAR_STOCK(codcom, cantidad, "-",serie);
}

public void DevolverStock_FE(string codcom, int cantidad, string serie)


{
string cnx = ConexionDAO.SELECTOS;
db.Database.Connection.ConnectionString = cnx;
db.USP_ACTUALIZAR_STOCK(codcom, cantidad, "-", serie);
}

public DataSet GenerarComprobantePlano(Int64 Numero, string


tipoComprobante)
{
string cns = ConexionDAO.SELECTOS;

using (SqlConnection cn = new SqlConnection(cns))


{
DataSet ds = new DataSet();
using (SqlCommand cmd = new
SqlCommand("USP_LISTARDOCFACTURABOLETA", cn))
{
cmd.Parameters.AddWithValue("@NUMERO", Numero);
cmd.Parameters.AddWithValue("@TIPOCOMPROBANTE",
tipoComprobante);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
{
da.Fill(ds);
}
return ds;
}
}
}

public int EstablecerPedidoAtendido(string idalmacen,string codarticulo,int


numpedido)
{

string cnx = ConexionDAO.SELECTOS;


using (SqlConnection cn = new SqlConnection(cnx))
{
DataSet ds = new DataSet();
using (SqlCommand cmd = new SqlCommand("USP_ACTIVAR_PED_ATENDIDO",
cn))
{
cmd.Parameters.AddWithValue("@idalm", idalmacen);
cmd.Parameters.AddWithValue("@codcom", codarticulo);
cmd.Parameters.AddWithValue("@NUM_NOTAPEDIDO", numpedido);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cn.Open();
return cmd.ExecuteNonQuery();
}
}
}

public int EstablecerPedidoAtendidoEF(string idalmacen, string codarticulo,


int numpedido)
{
db.Database.Connection.ConnectionString = ConexionDAO.SELECTOS;
return db.USP_ACTIVAR_PED_ATENDIDO(numpedido, codarticulo, idalmacen);
}

public DataSet ListarDetallesComprobante(Int64 Numero)


{
string cnx = ConexionDAO.SELECTOS;
using (SqlConnection cn = new SqlConnection(cnx))
{
DataSet ds = new DataSet();
using (SqlCommand cmd = new
SqlCommand("USP_LISTARDETALLESCOMPROBANTE", cn))
{
cmd.Parameters.AddWithValue("@NUMERO", Numero);

cmd.CommandType = System.Data.CommandType.StoredProcedure;
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
{
da.Fill(ds);
}
return ds;
}
}
}

public DataSet ListarDetalles_Comprobante(Int64 Numero)


{
string cnx = ConexionDAO.SELECTOS;
using (SqlConnection cn = new SqlConnection(cnx))
{
DataSet ds = new DataSet();
using (SqlCommand cmd = new
SqlCommand("USP_LISTARDETALLES_COMPROBANTE", cn))
{
cmd.Parameters.AddWithValue("@NUMERO", Numero);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
{
da.Fill(ds);
}
return ds;
}
}
}

public string ObtenerNumeroDocumento(string tipoDoc, String CUE)


{
string valor = string.Empty;

string cnx = ConexionDAO.SELECTOS;


using (SqlConnection cn = new SqlConnection(cnx))
{
using (SqlCommand cmd = new SqlCommand("USP_OBTENER_NUMERODOC",
cn))
{
cmd.Parameters.AddWithValue("@TIPODOCUMENTO", tipoDoc);
cmd.Parameters.AddWithValue("@CUE", CUE);
//cmd.Parameters.AddWithValue("@modoVenta", ModoVenta);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cn.Open();
valor = cmd.ExecuteScalar().ToString();
//valor = "00000030";
}
}

return valor;
}

public Int64 ObtenerNumeroDocumentoNC(string tipoDoc, String SERIE)


{
Int64 valor = 0;

string cnx = ConexionDAO.SELECTOS ;


using (SqlConnection cn = new SqlConnection(cnx))
{
using (SqlCommand cmd = new SqlCommand("USP_OBTENER_NUMERODOC_CAB",
cn))
{
cmd.Parameters.AddWithValue("@TIPODOC", tipoDoc);
cmd.Parameters.AddWithValue("@SERIE", SERIE);
//cmd.Parameters.AddWithValue("@modoVenta", ModoVenta);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cn.Open();
valor =Convert.ToInt64( cmd.ExecuteScalar());
//valor = "00000030";
}
}
return valor;
}

public Int64 GrabarNumeroDocumentoNC(string tipoDoc, String SERIE)


{
Int64 valor = 0;

string cnx = ConexionDAO.SELECTOS;


using (SqlConnection cn = new SqlConnection(cnx))
{
using (SqlCommand cmd = new SqlCommand("USP_GRABAR_NUMERODOC_CAB",
cn))
{
cmd.Parameters.AddWithValue("@TIPODOC", tipoDoc);
cmd.Parameters.AddWithValue("@SERIE", SERIE);
//cmd.Parameters.AddWithValue("@modoVenta", ModoVenta);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cn.Open();
valor = Convert.ToInt64(cmd.ExecuteScalar());
//valor = "00000030";
}
}
return valor;
}

public string ObtenerNumeroDocumentoContigencia(string tipoDoc, String CUE)


{
string valor = string.Empty;

string cnx = ConexionDAO.SELECTOS;


using (SqlConnection cn = new SqlConnection(cnx))
{
using (SqlCommand cmd = new
SqlCommand("USP_OBTENER_NUMERODOC_CONTI", cn))
{
cmd.Parameters.AddWithValue("@TIPODOCUMENTO", tipoDoc);
cmd.Parameters.AddWithValue("@CUE", CUE);
//cmd.Parameters.AddWithValue("@modoVenta", ModoVenta);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cn.Open();
valor = cmd.ExecuteScalar().ToString();
//valor = "00000030";
}
}

return valor;
}

public int ActualizarSalida_Vale_Venta(int idcue, string serie, decimal


subtotal, decimal igv, decimal total, DataGridView dgv)
{
string cnx = ConexionDAO.SELECTOS;
int res = 0;
using (SqlConnection cn = new SqlConnection(cnx))
{
try
{
cn.Open();
using (SqlTransaction trans = cn.BeginTransaction())
{
try
{
foreach (DataGridViewRow fila in dgv.Rows)
{
if (fila.Cells["estado"].Value.ToString() == "D")
{
string scodcom =
fila.Cells["codcom"].Value.ToString();
using (SqlCommand cmd = new SqlCommand("UPDATE
SAL00" + serie + "set Activo=0 where CODCOM='" + scodcom + "' And idcue=" + idcue,
cn))
{
cmd.CommandType =
System.Data.CommandType.StoredProcedure;
cmd.ExecuteNonQuery();
}
}
else if (fila.Cells["estado"].Value.ToString() ==
"U")
{
string scodcom =
fila.Cells["codcom"].Value.ToString();
using (SqlCommand cmd = new SqlCommand("UPDATE
SAL00" + serie +
" SET PRECIO=" +
fila.Cells["preciounidad"].Value + " , TOTAL=" + fila.Cells["TotalVenta"].Value +
" ,CANTIDAD=" +
fila.Cells["cantidad"].Value +
" Where CODCOM='" + scodcom + "' and
idcue=" + idcue, cn, trans))
{
cmd.CommandType =
System.Data.CommandType.StoredProcedure;
cmd.ExecuteNonQuery();
}
}
}
using (SqlCommand cmd = new SqlCommand("UPDATE CUE" +
serie +
" SET SUBTOTAL=" + subtotal + ",TOTAL=" + total +
" ,igv=" + igv + " Where idcue=" + idcue, cn,
trans))
{
cmd.CommandType =
System.Data.CommandType.StoredProcedure;
cmd.ExecuteNonQuery();
}
trans.Commit();
res = 1;

}
catch (Exception ex)
{
trans.Rollback();
res=-1;
}
finally
{
trans.Dispose();
}
return res;
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
}

public int AnularSalida_Venta(int idcue,string serie)


{
string cnx = ConexionDAO.SELECTOS;
int res = 0;
using (SqlConnection cn = new SqlConnection(cnx))
{
cn.Open();
using (SqlTransaction trans = cn.BeginTransaction())
{
try
{
using (SqlCommand cmdCUE = new SqlCommand("Update CUE00" +
serie + " SET ACTIVO=0 WHERE IDCUE=" + idcue, cn, trans))
{
cmdCUE.ExecuteNonQuery();
using (SqlCommand cmdSAL = new SqlCommand("Update
SAL00" + serie + " SET ACTIVO=0 WHERE IDCUE=" + idcue, cn, trans))
{
cmdSAL.ExecuteNonQuery();
trans.Commit();
res=1;
}
}
}
catch(Exception ex)
{
trans.Rollback();
throw new Exception(ex.Message);
}
finally
{
trans.Dispose();
}
return res;
}
}
}

public void RegistrarDetallesSalida(string serie, string codcom, int


cantidad, decimal precio,decimal total , SqlConnection cn,SqlTransaction trans)
{
using (SqlCommand cmd = new SqlCommand("INSERT INTO SAL00" + serie
+"(" +
"CODCOM,CANTIDAD,PRECIO,TOTAL)
VALUES(@CODCOM,@CANTIDAD,@PRECIO,@TOTAL)", cn,trans))
{
cmd.Parameters.AddWithValue("@CODCOM", codcom);
cmd.Parameters.AddWithValue("@CANTIDAD", cantidad);
cmd.Parameters.AddWithValue("@PRECIO", precio);
cmd.Parameters.AddWithValue("@TOTAL", total);
cmd.CommandType = System.Data.CommandType.StoredProcedure;

cmd.ExecuteNonQuery().ToString();
}
}

#region IDisposable Support


private bool disposedValue = false; // Para detectar llamadas redundantes

protected virtual void Dispose(bool disposing)


{
if (!disposedValue)
{
if (disposing)
{
// TODO: elimine el estado administrado (objetos
administrados).
}

// TODO: libere los recursos no administrados (objetos no


administrados) y reemplace el siguiente finalizador.
// TODO: configure los campos grandes en nulos.

disposedValue = true;
}
}

// TODO: reemplace un finalizador solo si el anterior Dispose(bool


disposing) tiene código para liberar los recursos no administrados.
// ~CabeceraDAO() {
// // No cambie este código. Coloque el código de limpieza en el anterior
Dispose(colocación de bool).
// Dispose(false);
// }

// Este código se agrega para implementar correctamente el patrón


descartable.
public void Dispose()
{
// No cambie este código. Coloque el código de limpieza en el anterior
Dispose(colocación de bool).
Dispose(true);
// TODO: quite la marca de comentario de la siguiente línea si el
finalizador se ha reemplazado antes.
GC.SuppressFinalize(this);
}
#endregion
public DataSet Mostrar_Comprobante(string TipoComprobante, string serie ,
string numero)
{
string cnx = ConexionDAO.SELECTOS;
using (SqlConnection cn = new SqlConnection(cnx))
{
DataSet ds = new DataSet();
using (SqlCommand cmd = new SqlCommand("USP_MOSTRAR_COMPROBANTE",
cn))
{
cmd.Parameters.AddWithValue("@tipocomprobante",
TipoComprobante);
cmd.Parameters.AddWithValue("@Serie", serie);
cmd.Parameters.AddWithValue("@numero", numero);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
{
da.Fill(ds);
}
return ds;
}
}
}

public DataSet ListarContingenciasPorFecha(DateTime fecha,string idalmacen)


{
string cnx = ConexionDAO.SELECTOS;
using (SqlConnection cn = new SqlConnection(cnx))
{
DataSet ds = new DataSet();
using (SqlCommand cmd = new
SqlCommand("USP_GENERAR_REPORTE_CONTIGENCIAS", cn))
{
cmd.Parameters.AddWithValue("@fecha", fecha);
cmd.Parameters.AddWithValue("@idalm",idalmacen);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
{
da.Fill(ds);
}
return ds;
}
}
}
}
}

Вам также может понравиться