예제 #1
0
 public OrdersController(CustomerSupplier context)
 {
     _context = context;
 }
예제 #2
0
        public static Client ToHandyClient(this CustomerSupplier value)
        {
            Client client = new Client();

            client.code        = value.cCodigoCliente;
            client.accuracy    = 10;
            client.description = value.cRazonSocial;
            client.comments    = "RFC: " + value.cRFC;
            client.enabled     = (value.cEstatus == 1) ? true : false;
            client.isNew       = false;
            client.discount    = value.cDescuentoMovto;
            //Las direcciones en Compaq se guardan por separado, es necesario volver a conectarse para buscar el domicilio
            Logger log = new Logger();  //Inicializa logs

            try
            {
                Directory.SetCurrentDirectory(ConfigProxy.AdminPaqPath); //Cambia al directorio de AdminPAQ para acceder al SDK
                int iResult = CompacSDK.fInicializaSDK();                // Inicialización del SDK

                Address address = new Address();                         //nuevo objeto para almacenar la dirección del cliente
                if (iResult == 0)
                {
                    iResult = CompacSDK.fAbreEmpresa(ConfigProxy.AdminPaqCompanyPath); //Apertura de la empresa
                    if (iResult == 0)
                    {
                        string agent = "";
                        iResult = AdminPaqService.Instance.GetAgent(value.cCodigoCliente, ref agent);

                        if (iResult == 0)
                        {
                            client.zone_description = agent;
                            log.Debug(value.cRazonSocial + " Agente encontrado: " + agent);
                        }
                        else
                        {
                            client.zone_description = "Zona General";
                            log.Warn(value.cRazonSocial + "No se pudo obtener agente. Error: " + iResult + ", " + CompacSDK.GetError(iResult));
                        }

                        iResult = AdminPaqService.Instance.GetAddress(ref address, value.cCodigoCliente, 0); //búsqueda de la dirección fiscal del cliente
                        if (iResult == 0)
                        {
                            client.address     = address.cNombreCalle + " " + address.cNumeroExterior + " " + address.cNumeroInterior + " " + address.cColonia + ", " + address.cEstado + ", " + address.cPais;
                            client.postalCode  = address.cCodigoPostal;
                            client.city        = address.cCiudad;
                            client.phoneNumber = address.cTelefono1;
                        }
                        else
                        {
                            log.Warn("Dirección no encontrada para cliente " + value.cCodigoCliente);
                        }
                    }
                    else
                    {
                        log.Warn("No se pudo abrir la empresa para buscar dirección y agente del cliente. Error: " + AdminPaqService.Instance.GetError(iResult));
                    }
                }
                else
                {
                    log.Error("No se pudo inicializar el SDK para obtener direcciones de clientes");
                }
            }
            catch (Exception ex)
            {
                log.Error("Error al tratar de obtener la dirección de un cliente: " + client.code + ". Exepción: " + ex);
                throw ex;
            }
            return(client);
        }
        public int GetClientChanges(ref List <CustomerSupplier> lstClientes, string sFrom)
        {
            Logger log = new Logger();

            log.Trace("Searching for clients");
            int iReturn = 0;

            try
            {
                int      iResult = CompacSDK.fPosPrimerCteProv();
                DateTime dtFrom;
                if (sFrom != "")
                {
                    dtFrom = DateTime.Parse(sFrom, System.Globalization.CultureInfo.CreateSpecificCulture("es-MX"));
                }
                else
                {
                    dtFrom = DateTime.MinValue;
                }
                if (iResult == 0)
                {
                    log.Trace("Everything is all right, we can start");
                    do
                    {
                        CustomerSupplier oCteProv = new CustomerSupplier();
                        oCteProv.cFechaAlta = GetStringField("ClientSupplier", "cFechaAlta", kLongFecha);
                        string[] test = oCteProv.cFechaAlta.Split(new Char[] { '/' });
                        if (test[0].Length == 1)
                        {
                            test[0] = "0" + test[0];
                        }
                        if (test[1].Length == 1)
                        {
                            test[1] = "0" + test[1];
                        }
                        oCteProv.cFechaAlta = test[0] + "/" + test[1] + "/" + test[2];

                        DateTime dtAlta = DateTime.ParseExact(oCteProv.cFechaAlta, "MM/dd/yyyy HH:mm:ss:fff", CultureInfo.InvariantCulture);
                        if (dtAlta.Date >= dtFrom.Date)
                        {
                            oCteProv.cCodigoCliente = GetStringField("ClientSupplier", "cCodigoCliente", kLongCodigo);
                            //log.trace("Client found: " + oCteProv.cCodigoCliente);//esta línea puede generar muchas lineas de Logger, en especial cuando se corre la primera sincronización, evaluar su utilidad antes de descomentar.
                            oCteProv.cRazonSocial         = GetStringField("ClientSupplier", "cRazonSocial", kLongNombre);
                            oCteProv.cRFC                 = GetStringField("ClientSupplier", "cRFC", kLongRFC);
                            oCteProv.cCURP                = GetStringField("ClientSupplier", "cCURP", kLongCURP);
                            oCteProv.cDenComercial        = GetStringField("ClientSupplier", "cDenComercial", kLongDenComercial);
                            oCteProv.cRepLegal            = GetStringField("ClientSupplier", "cRepLegal", kLongRepLegal);
                            oCteProv.cNombreMoneda        = GetStringField("ClientSupplier", "cNombreMoneda", kLongNombre);
                            oCteProv.cListaPreciosCliente = GetLongField("ClientSupplier", "cListaPreciosCliente");
                            oCteProv.cDescuentoMovto      = GetDoubleField("ClientSupplier", "cDescuentoMovto");
                            oCteProv.cBanVentaCredito     = GetLongField("ClientSupplier", "cBanVentaCredito");
                            oCteProv.cCodigoValorClasificacionCliente1 = GetStringField("ClientSupplier", "cCodigoValorClasificacionCliente1", kLongCodValorClasif);
                            oCteProv.cCodigoValorClasificacionCliente2 = GetStringField("ClientSupplier", "cCodigoValorClasificacionCliente2", kLongCodValorClasif);
                            oCteProv.cCodigoValorClasificacionCliente3 = GetStringField("ClientSupplier", "cCodigoValorClasificacionCliente3", kLongCodValorClasif);
                            oCteProv.cCodigoValorClasificacionCliente4 = GetStringField("ClientSupplier", "cCodigoValorClasificacionCliente4", kLongCodValorClasif);
                            oCteProv.cCodigoValorClasificacionCliente5 = GetStringField("ClientSupplier", "cCodigoValorClasificacionCliente5", kLongCodValorClasif);
                            oCteProv.cCodigoValorClasificacionCliente6 = GetStringField("ClientSupplier", "cCodigoValorClasificacionCliente6", kLongCodValorClasif);
                            oCteProv.cTipoCliente          = GetLongField("ClientSupplier", "cTipoCliente");
                            oCteProv.cEstatus              = GetLongField("ClientSupplier", "cEstatus");
                            oCteProv.cFechaBaja            = GetStringField("ClientSupplier", "cFechaBaja", kLongFecha);
                            oCteProv.cFechaUltimaRevision  = GetStringField("ClientSupplier", "cFechaUltimaRevision", kLongFecha);
                            oCteProv.cLimiteCreditoCliente = GetDoubleField("ClientSupplier", "cLimiteCreditoCliente");
                            oCteProv.cDiasCreditoCliente   = GetLongField("ClientSupplier", "cDiasCreditoCliente");
                            oCteProv.cBanExcederCredito    = GetLongField("ClientSupplier", "cBanExcederCredito");
                            oCteProv.cDescuentoProntoPago  = GetDoubleField("ClientSupplier", "cDescuentoProntoPago");
                            oCteProv.cDiasProntoPago       = GetLongField("ClientSupplier", "cDiasProntoPago");
                            oCteProv.cInteresMoratorio     = GetDoubleField("ClientSupplier", "cInteresMoratorio");
                            oCteProv.cDiaPago              = GetLongField("ClientSupplier", "cDiaPago");
                            oCteProv.cDiasRevision         = GetLongField("ClientSupplier", "cDiasRevision");
                            oCteProv.cMensajeria           = GetStringField("ClientSupplier", "cMensajeria", kLongDesCorta);
                            oCteProv.cCuentaMensajeria     = GetStringField("ClientSupplier", "cCuentaMensajeria", kLongDescripcion);
                            oCteProv.cDiasEmbarqueCliente  = GetLongField("ClientSupplier", "cDiasEmbarqueCliente");
                            oCteProv.cCodigoAlmacen        = GetStringField("ClientSupplier", "cCodigoAlmacen", kLongDescripcion);
                            oCteProv.cCodigoAgenteVenta    = GetStringField("ClientSupplier", "cCodigoAgenteVenta", kLongCodigo);
                            oCteProv.cCodigoAgenteCobro    = GetStringField("ClientSupplier", "cCodigoAgenteCobro", kLongCodigo);
                            oCteProv.cRestriccionAgente    = GetLongField("ClientSupplier", "cRestriccionAgente");
                            oCteProv.cImpuesto1            = GetDoubleField("ClientSupplier", "cImpuesto1");
                            oCteProv.cImpuesto2            = GetDoubleField("ClientSupplier", "cImpuesto2");
                            oCteProv.cImpuesto3            = GetDoubleField("ClientSupplier", "cImpuesto3");
                            oCteProv.cRetencionCliente1    = GetDoubleField("ClientSupplier", "cRetencionCliente1");
                            oCteProv.cRetencionCliente2    = GetDoubleField("ClientSupplier", "cRetencionCliente2");
                            oCteProv.cCodigoValorClasificacionProveedor1 = GetStringField("ClientSupplier", "cCodigoValorClasificacionProveedor1", kLongCodValorClasif);
                            oCteProv.cCodigoValorClasificacionProveedor2 = GetStringField("ClientSupplier", "cCodigoValorClasificacionProveedor2", kLongCodValorClasif);
                            oCteProv.cCodigoValorClasificacionProveedor3 = GetStringField("ClientSupplier", "cCodigoValorClasificacionProveedor3", kLongCodValorClasif);
                            oCteProv.cCodigoValorClasificacionProveedor4 = GetStringField("ClientSupplier", "cCodigoValorClasificacionProveedor4", kLongCodValorClasif);
                            oCteProv.cCodigoValorClasificacionProveedor5 = GetStringField("ClientSupplier", "cCodigoValorClasificacionProveedor5", kLongCodValorClasif);
                            oCteProv.cCodigoValorClasificacionProveedor6 = GetStringField("ClientSupplier", "cCodigoValorClasificacionProveedor6", kLongCodValorClasif);
                            oCteProv.cLimiteCreditoProveedor             = GetDoubleField("ClientSupplier", "cLimiteCreditoProveedor");
                            oCteProv.cDiasCreditoProveedor  = GetLongField("ClientSupplier", "cDiasCreditoProveedor");
                            oCteProv.cTiempoEntrega         = GetLongField("ClientSupplier", "cTiempoEntrega");
                            oCteProv.cDiasEmbarqueProveedor = GetLongField("ClientSupplier", "cDiasEmbarqueProveedor");
                            oCteProv.cImpuestoProveedor1    = GetDoubleField("ClientSupplier", "cImpuestoProveedor1");
                            oCteProv.cImpuestoProveedor2    = GetDoubleField("ClientSupplier", "cImpuestoProveedor2");
                            oCteProv.cImpuestoProveedor3    = GetDoubleField("ClientSupplier", "cImpuestoProveedor3");
                            oCteProv.cRetencionProveedor1   = GetDoubleField("ClientSupplier", "cRetencionProveedor1");
                            oCteProv.cRetencionProveedor2   = GetDoubleField("ClientSupplier", "cRetencionProveedor2");
                            oCteProv.cBanInteresMoratorio   = GetLongField("ClientSupplier", "cBanInteresMoratorio");
                            oCteProv.cTextoExtra1           = GetStringField("ClientSupplier", "cTextoExtra1", kLongTextoExtra);
                            oCteProv.cTextoExtra2           = GetStringField("ClientSupplier", "cTextoExtra2", kLongTextoExtra);
                            oCteProv.cTextoExtra3           = GetStringField("ClientSupplier", "cTextoExtra3", kLongTextoExtra);
                            oCteProv.cFechaExtra            = GetStringField("ClientSupplier", "cFechaExtra", kLongFecha);
                            oCteProv.cImporteExtra1         = GetDoubleField("ClientSupplier", "cImporteExtra1");
                            oCteProv.cImporteExtra2         = GetDoubleField("ClientSupplier", "cImporteExtra2");
                            oCteProv.cImporteExtra3         = GetDoubleField("ClientSupplier", "cImporteExtra3");
                            oCteProv.cImporteExtra4         = GetDoubleField("ClientSupplier", "cImporteExtra4");
                            lstClientes.Add(oCteProv);
                        }
                    } while (CompacSDK.fPosSiguienteCteProv() == 0);
                    log.Trace("No more clients");
                }
                else
                {
                    log.Trace("ERROR: it was no possible get the clients, error code: " + iResult);
                    iReturn = iResult;
                }
            }
            catch (Exception ex)
            {
                log.Error("ERROR in method GetClientChanges: " + ex.Message);
                throw ex;
            }
            return(iReturn);
        }
        // Not used
        public int AddClient(CustomerSupplier oCteProv)
        {
            int iReturn = 0;
            int iResult = 0;

            iResult = CompacSDK.fInsertaCteProv();
            if (iResult == 0)
            {
                SetField("ClientSupplier", "cCodigoCliente", oCteProv.cCodigoCliente, "string");
                SetField("ClientSupplier", "cRazonSocial", oCteProv.cRazonSocial, "string");
                SetField("ClientSupplier", "cFechaAlta", oCteProv.cFechaAlta, "date");
                SetField("ClientSupplier", "cCURP", oCteProv.cCURP, "string");
                SetField("ClientSupplier", "cDenComercial", oCteProv.cDenComercial, "string");
                SetField("ClientSupplier", "cRepLegal", oCteProv.cRepLegal, "string");
                SetField("ClientSupplier", "cNombreMoneda", oCteProv.cNombreMoneda, "string");
                SetField("ClientSupplier", "cListaPrecioCliente", oCteProv.cListaPreciosCliente.ToString(), "long");
                SetField("ClientSupplier", "cDescuentoMovto", oCteProv.cDescuentoMovto.ToString(), "double");
                SetField("ClientSupplier", "cBanVentaCredito", oCteProv.cBanVentaCredito.ToString(), "long");
                SetField("ClientSupplier", "cCodigoValorClasificacionCliente1", oCteProv.cCodigoValorClasificacionCliente1, "string");
                SetField("ClientSupplier", "cCodigoValorClasificacionCliente2", oCteProv.cCodigoValorClasificacionCliente2, "string");
                SetField("ClientSupplier", "cCodigoValorClasificacionCliente3", oCteProv.cCodigoValorClasificacionCliente3, "string");
                SetField("ClientSupplier", "cCodigoValorClasificacionCliente4", oCteProv.cCodigoValorClasificacionCliente4, "string");
                SetField("ClientSupplier", "cCodigoValorClasificacionCliente5", oCteProv.cCodigoValorClasificacionCliente5, "string");
                SetField("ClientSupplier", "cCodigoValorClasificacionCliente6", oCteProv.cCodigoValorClasificacionCliente6, "string");
                SetField("ClientSupplier", "cTipoCliente", oCteProv.cTipoCliente.ToString(), "long");
                SetField("ClientSupplier", "cEstatus", oCteProv.cEstatus.ToString(), "long");
                SetField("ClientSupplier", "cFechaBaja", oCteProv.cFechaBaja, "date");
                SetField("ClientSupplier", "cFechaUltimaRevision", oCteProv.cFechaUltimaRevision, "date");
                SetField("ClientSupplier", "cLimiteCreditoCliente", oCteProv.cLimiteCreditoCliente.ToString(), "double");
                SetField("ClientSupplier", "cDiasCreditoCliente", oCteProv.cDiasCreditoCliente.ToString(), "long");
                SetField("ClientSupplier", "cBanExcederCredito", oCteProv.cBanExcederCredito.ToString(), "long");
                SetField("ClientSupplier", "cDescuentoProntoPago", oCteProv.cDescuentoProntoPago.ToString(), "double");
                SetField("ClientSupplier", "cDiasProntoPago", oCteProv.cDiasProntoPago.ToString(), "long");
                SetField("ClientSupplier", "cInteresMoratorio", oCteProv.cInteresMoratorio.ToString(), "double");
                SetField("ClientSupplier", "cDiaPago", oCteProv.cDiaPago.ToString(), "long");
                SetField("ClientSupplier", "cDiasRevision", oCteProv.cDiasRevision.ToString(), "long");
                SetField("ClientSupplier", "cMensajeria", oCteProv.cMensajeria, "string");
                SetField("ClientSupplier", "cCuentaMensajeria", oCteProv.cCuentaMensajeria, "string");
                SetField("ClientSupplier", "cDiasEmbarqueCliente", oCteProv.cDiasEmbarqueCliente.ToString(), "long");
                SetField("ClientSupplier", "cCodigoAlmacen", oCteProv.cCodigoAlmacen, "string");
                SetField("ClientSupplier", "cCodigoAgenteVenta", oCteProv.cCodigoAgenteVenta, "string");
                SetField("ClientSupplier", "cCodigoAgenteCobro", oCteProv.cCodigoAgenteCobro, "string");
                SetField("ClientSupplier", "cRestriccionAgente", oCteProv.cRestriccionAgente.ToString(), "long");
                SetField("ClientSupplier", "cImpuesto1", oCteProv.cImpuesto1.ToString(), "double");
                SetField("ClientSupplier", "cImpuesto2", oCteProv.cImpuesto2.ToString(), "double");
                SetField("ClientSupplier", "cImpuesto3", oCteProv.cImpuesto3.ToString(), "double");
                SetField("ClientSupplier", "cRetencionCliente1", oCteProv.cRetencionCliente1.ToString(), "double");
                SetField("ClientSupplier", "cRetencionCliente2", oCteProv.cRetencionCliente2.ToString(), "double");
                SetField("ClientSupplier", "cCodigoValorClasificacionProveedor1", oCteProv.cCodigoValorClasificacionProveedor1, "string");
                SetField("ClientSupplier", "cCodigoValorClasificacionProveedor2", oCteProv.cCodigoValorClasificacionProveedor2, "string");
                SetField("ClientSupplier", "cCodigoValorClasificacionProveedor3", oCteProv.cCodigoValorClasificacionProveedor3, "string");
                SetField("ClientSupplier", "cCodigoValorClasificacionProveedor4", oCteProv.cCodigoValorClasificacionProveedor4, "string");
                SetField("ClientSupplier", "cCodigoValorClasificacionProveedor5", oCteProv.cCodigoValorClasificacionProveedor5, "string");
                SetField("ClientSupplier", "cCodigoValorClasificacionProveedor6", oCteProv.cCodigoValorClasificacionProveedor6, "string");
                SetField("ClientSupplier", "cLimiteCreditoProveedor", oCteProv.cLimiteCreditoProveedor.ToString(), "double");
                SetField("ClientSupplier", "cDiasCreditoProveedor", oCteProv.cDiasCreditoProveedor.ToString(), "long");
                SetField("ClientSupplier", "cTiempoEntrega", oCteProv.cTiempoEntrega.ToString(), "long");
                SetField("ClientSupplier", "cDiasEmbarqueProveedor", oCteProv.cDiasEmbarqueProveedor.ToString(), "long");
                SetField("ClientSupplier", "cImpuestoProveedor1", oCteProv.cImpuestoProveedor1.ToString(), "double");
                SetField("ClientSupplier", "cImpuestoProveedor2", oCteProv.cImpuestoProveedor2.ToString(), "double");
                SetField("ClientSupplier", "cImpuestoProveedor3", oCteProv.cImpuestoProveedor3.ToString(), "double");
                SetField("ClientSupplier", "cRetencionProveedor1", oCteProv.cRetencionProveedor1.ToString(), "double");
                SetField("ClientSupplier", "cRetencionProveedor2", oCteProv.cRetencionProveedor2.ToString(), "double");
                SetField("ClientSupplier", "cBanInteresMoratorio", oCteProv.cBanInteresMoratorio.ToString(), "long");
                SetField("ClientSupplier", "cTextoExtra1", oCteProv.cTextoExtra1, "string");
                SetField("ClientSupplier", "cTextoExtra2", oCteProv.cTextoExtra2, "string");
                SetField("ClientSupplier", "cTextoExtra3", oCteProv.cTextoExtra3, "string");
                SetField("ClientSupplier", "cFechaExtra", oCteProv.cFechaExtra, "date");
                SetField("ClientSupplier", "cImporteExtra1", oCteProv.cImporteExtra1.ToString(), "double");
                SetField("ClientSupplier", "cImporteExtra2", oCteProv.cImporteExtra2.ToString(), "double");
                SetField("ClientSupplier", "cImporteExtra3", oCteProv.cImporteExtra3.ToString(), "double");
                SetField("ClientSupplier", "cImporteExtra4", oCteProv.cImporteExtra4.ToString(), "double");
                iResult = CompacSDK.fGuardaCteProv();
                iReturn = iResult;
            }
            return(iReturn);
        }
예제 #5
0
 public ProductsController(CustomerSupplier context)
 {
     _context = context;
 }